0

当我在 javascript 中创建对象时,我发现自己设置了不会var = 'sjdksjka';this.x = 0;.

什么时候用最好

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

我应该在何时何地选择一个而不是另一个?

4

2 回答 2

1

第一个在函数范围内,仅在函数本身内可见。第二个绑定到调用函数的对象。这种情况只有在函数是对象的成员并且您想要修改对象本身时才有用。第一个变体用于函数调用期间的临时结果。

于 2013-02-25T09:06:55.047 回答
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.) ,它也将起作用

于 2013-02-25T09:12:10.063 回答