码迷,mamicode.com
首页 > 其他好文 > 详细

俊哥的blog的一道题

时间:2018-04-28 19:24:04      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:16px   对象   this   实例   set   ros   ring   size   console   

题目:

 

实现一个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的方法里面

俊哥的blog的一道题

标签:16px   对象   this   实例   set   ros   ring   size   console   

原文地址:https://www.cnblogs.com/tangjiao/p/8969003.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!