这些天来,我在理解bind()
方法方面很费劲,我知道bind方法可以让我们手动定义this
关键字,并且它创建函数的副本,以便我们可以存储并在其他地方使用它就可以了,但是在某些情况下,我们无法使用bind()
方法,因为我们知道关键字this
常规函数调用指向全局对象。
让我为您展示实际代码,以便您更清楚地了解我在说什么:
function Person(name){
this.name=name;
}
var friends=['jane','jack','max']
Person.prototype.myFriends5=function(el){
// var self=this;
var arr=friends.map(function(el){
return this.name +' is friends with '+ el;
}.bind(this));
console.log(arr);
};
new Person('john').myFriends5(friends);
关注bind()
方法。
我知道我们创建了函数的副本,但是有一个常规函数调用,“ this”关键字应该指向全局对象,但是没有指向函数,我真的不明白它是如何工作的,请帮帮我,预先感谢。