Javascript 类属性和方法的工作方式不同

标签 javascript oop

我使用 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/

相关文章:

oop - 是否存在确定方法或字段是否属于类的启发式方法?

通过对象调用Java接口(interface)方法

javascript - 通过嵌套对象 JavaScript 计时递归迭代

javascript - React-Bootstrap 网格内容不显示

javascript - 如何从 Uploadcare 小部件中隐藏选择文件按钮

c# - 在 C# 中的另一个类中声明的类

php - 我应该为每个类使用一个 getter/setter,还是为每个属性使用一个 getter/setter?

c++ - 方法无法解决

javascript - JQuery:如何缓存 DOM?

javascript - 保存当前页面或在按钮或 href 标签上触发 ctrl+s 组合 chrome jquery javascript