当我在javascript中创建对象时,我发现自己设置的常量不会随着var = 'sjdksjka';
而改变,而且相对于具有this.x = 0;
的对象会发生变化。
何时最好使用
function a() {
var b = 0; // var =
this.c = 0; // this.
}
我应该在何时何地选择其中一个?
答案 0 :(得分:1)
第一个是函数范围,只在函数本身可见。第二个绑定到调用该函数的对象。这种情况仅在函数是对象的成员并且您想要修改对象本身时才有用。第一个变量用于函数调用期间的临时结果。
答案 1 :(得分:1)
var
将变量粘贴在函数范围内。 a()
完成执行的那一刻,变量b
将被销毁。
a()
console.log(b) //will print "undefined"
this.c
创建一个对象属性。这是当您使用a()
作为对象构造函数时:
d=new a()
console.log(a.c) //will print 0
console.log(b) //will print "undefined"
console.log(a.b) //will print "undefined"
如果将a
设置为另一个构造函数的成员函数(通过.prototype.
)