各位程序员晚上好,提前感谢您的帮助/关注。
这是关于使用语句(而不是表达式)声明 JavaScript Function 对象并向其添加属性的内容。
如果这有效:(它确实有效!)
function Test(){
alert( Test.Data );
}
// Define a property on the method.
Test.Data = "Method property";
// Execute the method.
Test();
那为什么这不起作用?
function Test(){
var Data = "Method property";
alert( Test.Data );
}
// Execute the method.
Test();
甚至这个?
function Test(){
Data : "Method property";
alert( Test.Data );
}
// Execute the method.
Test();
用英语:我不明白的是为什么你可以从外部而不是内部在函数对象中设置属性...我认为这与上下文有关,而函数对象如何不这样做存在,或者在我尝试设置内部属性时,对它的引用不在范围内...如果有人可以为我确认/否认/澄清,那就太好了。
谢谢。
詹姆斯
最佳答案
您可以从函数对象内部设置属性。您的操作方式与外部操作完全一样:
function Test() {
Test.Data = "Method property";
alert(Test.Data);
}
您的问题与范围无关,而与理解设置对象属性的语法与创建局部变量的语法有关。
then why does this not work?
function Test(){ var Data = "Method property"; alert( Test.Data ); }
因为在这种情况下,Data
只是一个局部变量,而不是函数的属性,因此 Test.Data
是未定义
。
or even this?
function Test(){ Data : "Method property"; alert( Test.Data ); }
因为在这种情况下,Data
只是 a label 。同样,这与 Test
上设置的任何属性都没有关系。
关于javascript - 关于 Javascript 中函数对象作用域的快速介绍(我希望很简单!)...ode>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9087357/