我想知道在下面的代码中是否有任何区别:
function x(){
var a = 1;
}
和
function x(){
this.a = 1;
}
答案 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