Function.prototype.test = function(){return "F"}
function hh(){var x="xx";function test(){return "f"}}
print(hh.test());
結果是「f」,這是否意味着內部函數是外部函數的一個屬性?是外部函數的一個屬性的內部函數?
==更新了我的代碼,但結果仍然是「f」。 !_!
Function.prototype.test = function(){return "F"}
function hh(){var x="xx";function test(){return "f"}}
print(hh.test());
結果是「f」,這是否意味着內部函數是外部函數的一個屬性?是外部函數的一個屬性的內部函數?
==更新了我的代碼,但結果仍然是「f」。 !_!
結果應該是錯誤 - 至少在Chrome中是這樣。
test
裏面hh
是一個本地函數,它不應該從外部訪問。
至於Function.test
,這是財產Function
- 不是所有職能的成員。如果你真的想要成爲所有功能的成員,它需要被添加到Function.prototype
實際上我使用的引擎是Mozilla®SpiderMonkey(JavaScript-C)引擎,它產生了「f」結果,那麼,它是引擎特定的行爲嗎? – Ryan
你真的設法從這段代碼得到一個結果?您正在嘗試打印結果。
hh.test
將被定義爲test
私人定義爲hh。在這種情況下,在原型Function.prototype.test
上定義測試將從hh.test
返回'F'。
是的,你是對的,但是代碼給了我什麼,我正在使用Mozilla®SpiderMonkey(JavaScript-C)引擎,不知道這個引擎是否支持這種語法? – Ryan
結果不能是'f'。 'hh.test'是'undefined',因爲內部函數是一個私有函數。 – pimvdb
我無法重現您的結果:http://jsfiddle.net/dHPQX/它引發錯誤* hh.test不是函數*。 'hh'沒有'test'屬性。 –
實際的錯誤是,hh.test不是一個函數,但是這是因爲它是私人的......。 – Nikoloff