Skip to content

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

@Genzhen

Description

@Genzhen
Collaborator
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+道前端面试题。

Activity

Genzhen

Genzhen commented on Jun 22, 2020

@Genzhen
CollaboratorAuthor

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

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

123456zzz

123456zzz commented on Jul 14, 2020

@123456zzz

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

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

yideng is 21 错了

Genzhen

Genzhen commented on Jul 15, 2020

@Genzhen
CollaboratorAuthor

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

yideng is 21 错了

已更正,感谢指出

a123456789B

a123456789B commented on Sep 4, 2020

@a123456789B

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

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

JackingHuang

JackingHuang commented on Jan 4, 2022

@JackingHuang

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @JackingHuang@Genzhen@123456zzz@a123456789B

        Issue actions

          Day19:写出执行结果,并解释原因 · Issue #55 · lgwebdream/FE-Interview