Как и другие ответы указали, что вам нужно вернуться this
для того, чтобы иметь возможность вызывать те же или дополнительные функции на одном объекте.
Вы можете сделать это немного более легко с помощью функции высшего порядка, который мы называем «chainify», который заботится о возвращении this
для вас (?):
function chainify(fn) {
return function() {
fn.apply(this, arguments);
return this;
};
}
Вы можете chainify свой объект методы различными способами, но вот один:
var myfunc = {
init: function() {
this.copy = chainify(this.copy);
return this;
},
copy: function(message){
console.log(message);
}
}.init();
Это имеет незначительное преимущество, что каждый метод не нужно быть завален с return this
в конце концов, и вы не рискуете забываете Сделай так.
Кроме того, если console.log находился в тайм-ауте 1000 мс, как бы он срабатывал в первый раз, подождать секунду, а затем снова запустить его? Вместо того, чтобы стрелять после этой секунды? Почти так же, как не выполнять, пока функция полностью не закончит свой курс полностью. Извините за публикацию в комментариях, но поскольку мой первоначальный вопрос был дан, я не хотел загрязнять исходный вопрос. – user3612986