我正在使用“call”方法来触发函数并更改范围,但是执行此操作后如何获取原始范围?换句话说,如何访问“基础”上下文?
例如,我调用“joe”并传递“jill”作为上下文。但是,在“greet”的第二个警报中,如何访问“name: Joe”变量?
var joe = {
name : "Joe",
greet : function (name) {
alert(this.name + " says hello to " + name);
//Below is wrong. How do I get "Joe"?
alert('Original Joe context name is: ' + this.name);
}
};
var jill = {
name : "Jill"
};
//Outputs "Jill says hello to Mike"
joe.greet.call(jill, "Mike");
以下是此示例的 jsFiddle:http://jsfiddle.net/ueeRk/
最佳答案
你不能。
如果您需要它 - 将其作为函数参数传递。
关于javascript - fn.call 后如何获取原始上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18347856/