javascript - Javascript 构造函数中函数声明的差异

标签 javascript oop

我对在构造函数中声明函数的不同方式感到困惑。

function ClassName() {
 this.one = function() {};
 var two = function() {};  
 three = function() {};
}

我知道one是public的,可以被外部调用,two是private的。 的语义是什么?

最佳答案

您提供的示例将是一个语法错误,因为您需要在该上下文中使用 = 进行赋值。

three 如果与正确的赋值运算符一起使用,将是一个存在于该范围之外的全局函数。当您省略 var 关键字时,该变量会被分配一个全局对象的属性,即浏览器中的 window

jsFiddle .

当使用 var 时,它们成为执行上下文中 VariableObject 的属性。您将它们用作普通变量。

Further Reading .

关于javascript - Javascript 构造函数中函数声明的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5959782/

相关文章:

c# - 如何确保只能从特定类调用类方法?

java - 关于多态和重载的问题

javascript - 在 Angular 中将范围链接在一起

javascript - ui-router 通过 URL 地址更改状态?

javascript - jQuery previous sibling 问题

javascript - 无法运行实习生功能测试。错误 : [POST http://localhost:4444/wd/hub/session] connect ECONNREFUSED

oop - 我应该如何构建这个类的继承?

javascript - find 查询查找检索 mongodb 中特定元素的数据

java - 银行类OOP接口(interface)决定

c# - 继承和构造函数中的错误