我对在构造函数中声明函数的不同方式感到困惑。
function ClassName() {
this.one = function() {};
var two = function() {};
three = function() {};
}
我知道one是public的,可以被外部调用,two是private的。 三的语义是什么?
最佳答案
您提供的示例将是一个语法错误,因为您需要在该上下文中使用 =
进行赋值。
three
如果与正确的赋值运算符一起使用,将是一个存在于该范围之外的全局函数。当您省略 var
关键字时,该变量会被分配一个全局对象的属性,即浏览器中的 window
。
jsFiddle .
当使用 var
时,它们成为执行上下文中 VariableObject 的属性。您将它们用作普通变量。
关于javascript - Javascript 构造函数中函数声明的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5959782/