FE-Interview icon indicating copy to clipboard operation
FE-Interview copied to clipboard

Day19:写出执行结果,并解释原因

Open Genzhen opened this issue 4 years ago • 5 comments

const person = { name: "yideng" };

function sayHi(age) {
  return `${this.name} is ${age}`;
}
console.log(sayHi.call(person, 21));
console.log(sayHi.bind(person, 21));

每日一题会在下午四点在交流群集中讨论,五点小程序中更新答案 欢迎大家在下方发表自己的优质见解 二维码加载失败可点击 小程序二维码

扫描下方二维码,收藏关注,及时获取答案以及详细解析,同时可解锁800+道前端面试题。

Genzhen avatar Jun 22 '20 12:06 Genzhen

答案 yideng is 5 ƒ sayHi(age) {return ${this.name} is ${age};}

解析 使用两者,我们可以传递我们想要this关键字引用的对象。 但是,.call方法会立即执行! .bind方法会返回函数的拷贝值,但带有绑定的上下文! 它不会立即执行。

Genzhen avatar Jun 22 '20 12:06 Genzhen

答案 yideng is 21 ƒ sayHi(age) {return ${this.name} is ${age};}

解析 使用两者,我们可以传递我们想要this关键字引用的对象。 但是,.call方法会立即执行! .bind方法会返回函数的拷贝值,但带有绑定的上下文! 它不会立即执行。

yideng is 21 错了

123456zzz avatar Jul 14 '20 13:07 123456zzz

答案 yideng is 21 ƒ sayHi(age) {return ${this.name} is ${age};} 解析 使用两者,我们可以传递我们想要this关键字引用的对象。 但是,.call方法会立即执行! .bind方法会返回函数的拷贝值,但带有绑定的上下文! 它不会立即执行。

yideng is 21 错了

已更正,感谢指出

Genzhen avatar Jul 15 '20 14:07 Genzhen

VM117:6 yideng is 5 VM117:7 ƒ sayHi(age) { return ${this.name} is ${age}; }

bind 的返回是一个函数,要在调用时传参 console.log(sayHi.bind(person, 5)()); 这样输入才会出现和call 出现相同的结果

a123456789B avatar Sep 04 '20 07:09 a123456789B

image 应该是 yideng is 21 ƒ sayHi(age) {return ${this.name} is ${age};} ;yideng is 5 这个 5从什么地方来的???

JackingHuang avatar Jan 04 '22 01:01 JackingHuang