对JavaScript感到困惑';s';这';对象和';var';声明变量
我对JavaScript的对JavaScript感到困惑';s';这';对象和';var';声明变量,javascript,Javascript,我对JavaScript的这个对象有点困惑 var contextTest = function() { var x = 0; } var test = new contextTest; console.log(test.x); // produces undefined 上面的和这个有什么区别。x=0函数内部 我一直认为这样声明变量会将变量绑定到作用域。声明: var x = 0; 只需在任何函数范围内创建一个局部变量 该变量仅在该函数或函数闭包的生命周期内存在。这种类型的声明从
这个
对象有点困惑
var contextTest = function() {
var x = 0;
}
var test = new contextTest;
console.log(test.x); // produces undefined
上面的和这个有什么区别。x=0代码>函数内部
我一直认为这样声明变量会将变量绑定到作用域。声明:
var x = 0;
只需在任何函数范围内创建一个局部变量
该变量仅在该函数或函数闭包的生命周期内存在。这种类型的声明从不将此变量作为属性绑定到对象。为此,必须显式地为对象的属性赋值,如this.x=0代码>
如果使用的构造导致函数闭包持久化(代码中有),则局部变量的值将作为私有可访问变量存在于函数闭包中,只能从特定上下文中的特定函数访问。它在某些方面的行为类似于对象的私有实例变量。但是,它不是对象的属性,您不能通过此
或对对象的任何其他引用来引用它。只能从声明它的函数中引用它。声明:
var x = 0;
只需在任何函数范围内创建一个局部变量
该变量仅在该函数或函数闭包的生命周期内存在。这种类型的声明从不将此变量作为属性绑定到对象。为此,必须显式地为对象的属性赋值,如this.x=0代码>
如果使用的构造导致函数闭包持久化(代码中有),则局部变量的值将作为私有可访问变量存在于函数闭包中,只能从特定上下文中的特定函数访问。它在某些方面的行为类似于对象的私有实例变量。但是,它不是对象的属性,您不能通过此
或对对象的任何其他引用来引用它。只能从声明它的函数中引用它。var x=0
不会将变量分配给函数。它只是碰巧住在里面it@NikolaNinkovic只为文本投票,我甚至没有看页面。@jbabey就是这样:)var x=0
没有将变量赋值给函数。它只是碰巧住在里面it@NikolaNinkovic只为文本投票,我甚至没有看页面。@jbabey就是这样:)为什么重复他们说的话?@Ark-我不知道你的评论是什么意思。我回答了这个问题,提供的信息比任何其他评论都要多得多。没有其他答案提供这一信息。为什么要重复他们说的话?@Ark-我不知道你的评论是什么意思。我回答了这个问题,提供的信息比任何其他评论都要多得多。没有提供此信息的其他答案。