在前一段时间写一个Javascript继承函数时,我注意到Visual Studio中有一些非常奇怪的intellisense行为,我认为其他地方没有记录。到目前为止,我已经在VS2008和VS2010中观察到了这一点,但它可以追溯到我所知道的所有时间。
基本上,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不可能知道'firstname'或'lastname'是一个对象成员而不执行'test()'在调用函数之前,它们不是成员。
有人可以提出解释吗?
答案 0 :(得分:1)
VS intellisense确实执行了代码(无论如何都是伪执行)。