如何正确定义变量以更正对象范围

时间:2013-09-26 08:52:39

标签: javascript

myvar = whatever;

namespace.myspace.Create = function () {
    this.myvar = null;
    this.MyFunction = function (val) {
        this.myvar = val;
    }
}

---

namespace.myspace.Create = function () {
    var myvar = null;
    this.MyFunction = function (val) {
        this.myvar = val;
    }
}

---

namespace.myspace.Create = function () {
    myvar = null;
    this.MyFunction = function (val) {
        this.myvar = val;
    }
}

var myObject = new namespace.myspace.Create();

查看上面的代码,特别是myvar被定义为:

  • this.myvar = null;
  • var myvar = null;
  • myvar = null;

这些的主要区别,范围和用途是什么?任何陷阱或首选方式?任何这些都是错误的,不应该使用?

1 个答案:

答案 0 :(得分:1)

myvar是一个全局变量

this.myvar是一个作用于myspace命名空间

的公共变量

var myvar是一个私有变量,也是myspace命名空间的范围