何时使用this.var和var =;在一个javascript函数obj?

时间:2013-02-25 09:03:16

标签: javascript variables

当我在javascript中创建对象时,我发现自己设置的常量不会随着var = 'sjdksjka';而改变,而且相对于具有this.x = 0;的对象会发生变化。

何时最好使用

function a() {
    var b = 0; // var =
      this.c = 0; // this.
}

我应该在何时何地选择其中一个?

2 个答案:

答案 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.

,它也会起作用