我有一个在我无法编辑的另一个文件中定义的对象。 我需要调用在其中定义的函数,但未将其设置为方法。 我的测试不起作用,因为我的范围内不存在callMe。
// Example
function ObjectCreator()
{
this.name = "I am an object";
var callMe = function()
{
console.log("You did it");
}
this.DontCallMe = function()
{
console.log("You should not have called me");
callMe();
}
return this;
}
我的档案
// My attempt
var foo = new ObjectCreator();
foo.test = function()
{
// throws not defined error
callMe();
};
foo.test();
如何在不编辑原始文件的情况下调用callMe()以使其公开?
答案 0 :(得分:1)
这是不可能的。此函数将仅在构造函数或嵌套在其上的其他作用域内定义 - 这是词法作用域的工作原理。