这是JavaScript中最神秘的功能之一,在将对象方法分配给其他变量后,绑定(此关键字)将丢失
var john = {
name: 'John',
greet: function(person) {
alert("Hi " + person + ", my name is " + this.name);
}
};
john.greet("Mark"); // Hi Mark, my name is John
var fx = john.greet;
fx("Mark"); // Hi Mark, my name is
Run Code Online (Sandbox Code Playgroud)
我的问题是:
1)作业背后发生了什么?var fx = john.greet; 是按价值复制还是按参考复制?fx和john.greet指向两个不同的功能,对吧?
2)因为fx是一个全局方法,所以范围链只包含全局对象.Variable对象中此属性的值是多少?
javascript ×1