我使用 JavaScript 已经有一段时间了,并且总是使用这种表示法来创建对象
var className = (function() {
var property = 1; //Example of a property
var method = function () {
//Example of a method
};
});
但现在我有一个项目,我使用 AngularJs 并且 javascript 无法识别它。我可以用这个
var className = (function() {
this.property = 1; //Example of a property
this.method = function() {
//Example of a method
};
});
第一个不工作有什么原因吗?根据我的经验,我更喜欢第一个
[编辑]
var className = (function() {
var property = 1; //Example of a property
var method = function () {
//Example of a method
};
})();
最佳答案
var className = (function() {
var property = 1; //Example of a property
var method = function () {
//Example of a method
};
});
在此示例中,您实际上并未创建任何超越属性和/或方法的内容。您只需将一个函数分配给变量 className
,然后在该函数中创建另外两个变量。变量是函数作用域的,根据定义,变量在函数外部不可见。
关于Javascript 类属性和方法的工作方式不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31569595/