在JS中使用var或者这个内部函数有什么区别?

时间:2011-03-05 19:48:28

标签: javascript

我想知道在下面的代码中是否有任何区别:

function x(){
   var a = 1;
}

function x(){
   this.a = 1;
}

3 个答案:

答案 0 :(得分:1)

第一个创建一个本地范围的变量,在函数退出后不会保留(除非通过函数内部创建的闭包)。

第二个在this对象上创建一个expando属性,可能会覆盖该属性的任何先前值。

答案 1 :(得分:0)

变量的范围将被改变。只有当该函数被调用

时,var inside函数才会存在

<强> Reference

答案 2 :(得分:0)

范围。

this.a将检查窗口属性a,并使其成为全局

function x(){
   this.a = 1;
}

等于

var instantance_a;
function x(){
   instantance_a = 1;
}

或者更确切地说是全球性的财产

window.a