3
我已經創建了一個簡單的'require'機制(https://gist.github.com/1031869),其中包含的腳本被編譯並在新的上下文中運行。但是,當我在包含的腳本中調用函數並將其傳遞給this
時,包含的腳本在其中看不到任何屬性。v8無法從新上下文中編譯的腳本訪問屬性
//required.js - compiled and run in new context
exports.logThis = function(what){
for (key in what) log(key + ' : ' + what[key]);
}
//main.js
logger = require('required');
this.someProp = {some: 'prop'}
logger.logThis({one: 'two'}); //works, prints 'one : two'
logger.logThis(this); //doesn't work, prints nothing. expected 'some : prop'
logger.logThis(this.someProp); //works, prints 'some : prop'
如果在main.js文件中調用它,會顯示logger.logThis(this);'語句嗎? – levu
logger.log從main.js調用的this(this)不顯示任何內容。 如果我在main.js中爲(關鍵字)日誌(關鍵字) 做 ,那麼它會顯示這個屬性(如log函數和someProp)。 但是,如果我在required.js中運行相同的代碼,則不會打印任何內容。 – Florin
這很奇怪,可能是文件錯誤? – levu