俊哥的blog的一道题

题目:

实现一个person对象,有eatdinner两种方法
请用实例[依次类推]

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的方法里面

猜你喜欢

转载自www.cnblogs.com/tangjiao/p/8969003.html
今日推荐