首页 > 试题广场 >

以下代码,想要实现 a.add() 计算 a.x+a.y 的

[不定项选择题]
以下代码,想要实现 a.add() 计算 a.x+a.y 的值,以下可行的方式有 

  • b.add.call(a);
  • b.add.apply(a);
  • b.add.excute(a);
  • b.add.bind(a);
bind 返回一个新函数,不执行怎么可能有结果?应还是 xxx.bind(a)()
发表于 2018-02-17 14:57:14 回复(6)
d选项得是 b.add.bind(a)(); 才可以运行返回 this.x+this.y 的结果吧
发表于 2018-03-14 15:36:07 回复(0)
D是把b的add方法绑定到a上
发表于 2018-03-09 14:23:10 回复(0)
嚴格按照題目來的話,正確的作法應該是 Object.setPrototypeOf(a, b); 因為題目要求是在a上調用add method。
四個答案裡最接近的只有D,起碼返回的是個function,A和B都是直接去執行改變了context的add method。
发表于 2018-03-03 20:38:09 回复(0)
call和apply都是改变上下文中的this并立即执行这个函数,bind方法可以让对应的函数想什么时候调就什么时候调用,并且可以将参数在执行的时候添加。
发表于 2018-02-28 17:04:39 回复(0)