题目:
实现一个
person
对象,有eat
和dinner
两种方法
请用实例[依次类推]
new person("Tom").sleep(10).eat("dinner"); //输出 console.log("hello Tom") //等待10s, console.log("sleep 10s"), console.log("eat dinner")
看似是实现一个对象上面方法的链式调用。在调用eat方法的时候其实eat方法的target对象已经是new person('Tome').sleep(10);
var person = function(name){
this.name = name;
console.log(`hello ${name}`);
}
person.prototype.sleep = function(time){
this.promise = new Promise((resolve,reject)=>{
setTimeout(()=>{
console.log(`sleep ${time}s`);
},time*1000);
})
return this;
}
person.prototype.eat = function(food){
this.promise.then(res=>{
console.log(`eat ${food}`);
})
}
new person("Tom").sleep(10).eat("dinner");
Thus,要在sleep的方法里面