1
前段時間我寫了一個Javascript繼承函數時,我注意到Visual Studio中一些非常奇怪的行爲,我不認爲在其他地方有過文檔記錄。我已經在VS2008和VS2010中觀察到了這一點,但它可能會早於我所知道的。任何人都可以解釋Visual Studio的Javascript intellisense的這種行爲嗎?
基本上,VS似乎正在執行一個函數,並在intellisense中提供結果。
例如:
function test(obj, member, value) {
obj[member] = value;
return obj;
}
function harness() {
var obj = {};
test(obj, "firstname", "Jack");
test(obj, "lastname", "Bauer");
// If you now type in 'obj.' and wait for intellisense to pop-up you will notice that 'firstname' and 'lastname' will appear as members.
}
對於我的生活,我不能工作,如何這是可能的一個正常的語法檢查器 - VS不可能知道,「姓」或「姓」是一個沒有執行'test()'的對象成員,因爲它們不是成員,直到函數被調用。
任何人都可以提出解釋嗎?
乾杯,我錯過了那篇文章。僞執行運行得非常深,因爲我的繼承函數調用其他輔助函數來促進對象構造。一個驚人的功能,但它實現了! – Iian 2012-03-20 10:46:06
是的,當我第一次讀這本書時,我印象深刻! – Carl 2012-03-20 11:07:46