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()'的对象成员,因为它们不是成员,直到函数被调用。

任何人都可以提出解释吗?

回答

1

VS智能感知确实执行代码(无论如何,伪执行)。

看一看这个:http://weblogs.asp.net/scottgu/archive/2010/04/08/javascript-intellisense-improvements-with-vs-2010.aspx

+0

干杯,我错过了那篇文章。伪执行运行得非常深,因为我的继承函数调用其他辅助函数来促进对象构造。一个惊人的功能,但它实现了! – Iian 2012-03-20 10:46:06

+0

是的,当我第一次读这本书时,我印象深刻! – Carl 2012-03-20 11:07:46

相关问题