bind()方法如何与“ this”关键字关联工作?

时间:2019-02-17 00:11:42

标签: javascript

这些天来,我在理解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”关键字应该指向全局对象,但是没有指向函数,我真的不明白它是如何工作的,请帮帮我,预先感谢。

0 个答案:

没有答案