javascript - fn.call 后如何获取原始上下文?

标签 javascript function oop scope

我正在使用“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/

相关文章:

JavaScript:如何以编程方式确定网络 "fold"?

javascript - 从 iframe API 延迟加载 youtube 视频

javascript - 如何使用 Watir-Webdriver 不等待某些东西

python - 我可以像 shell 命令一样调用不带括号的 Python 函数吗?如果是这样,如何?

javascript函数参数命名要求

javascript - 更改数组的数据格式并删除键/值对

c++ - 未在范围内声明的变量错误/函数参数太少

c++ - 如何让一些派生类使用相同的方法,而另一些派生类使用另一个?

oop - 我应该如何在面向对象设计中实现数据库中规范化的项目?

c++ - 使用 Eigen 创建简单矩阵?