有什麼辦法來介紹本地變量「iWantThisHere」在這裏,這樣我就可以調用obj.n()假冒功能本地變量
var obj = {
test: "sure",
n : function(){ console.log(iWantThisHere); }
};
我試着用:
function fake(methods){
var F = new Function('methods', "var iWantThisHere = 'u have it', obj = {}; for(var meth in methods){ obj[meth] = methods[meth] } return obj;");
return F(methods); }
console.log(fake(obj), fake(obj).n());
我不想在這裏使用全局變量。設想一個模塊化系統,其中每個模塊使用例如一個util類,它例如在App對象中定義。所以我必須輸入例如App.utils.map或類似的東西。如果有一個這個util函數的快捷方式是模塊上下文本身的一個局部變量,那將是很好的。
編輯 ---那裏有沒有辦法做到這一點----
咦?你到底在說什麼? – SLaks 2011-06-03 22:27:03
你完全不清楚你想要這個變量是做什麼,或者做什麼,或者其他任何事情。 – Pointy 2011-06-03 22:27:16
由於範圍鏈的工作方式,你可以在全局範圍內引入這個變量,並且它會被選中 - 除非腳本在本地範圍內明確定義了它自己的版本,在這種情況下,我沒有看到很多希望:函數將始終使用它定義的範圍中的函數,如果它存在的話。 – Reid 2011-06-03 22:28:29