javascript函数与实例变量

时间:2014-01-29 15:46:11

标签: javascript

我正在尝试为每个分配创建一个具有实例变量的函数,例如

function Sample() {
    Sample.myInstanceVar = true; // <--- This var should be instance-specific
}

var a = Sample;
console.log(a.myInstanceVar); // should return undefined and it does
a.apply(this);

var b = Sample;
console.log(b.myInstanceVar); // i would like to get this one to return undefined here, but it returns true;

希望你明白这一点: - )

UPDATE产品:&gt;

我对Sample是一个实例不感兴趣,因为它是我引用的一个函数。我希望Sample有一些特定于我引用Sample的范围/上下文的变量或实例。

1 个答案:

答案 0 :(得分:9)

function Sample() {
    Sample.myInstanceVar = true; // <--- This var should be instance-specific
}

没有。这会修改Sample

引用的全局对象
 var a = Sample;

没有。这会复制对上述全局对象的引用。


如何创建实例

var a = new Sample();

new是重要的一点。如果你没有参数,()是可选的,但包括它们是好的风格。

如何在实例上定义属性

使用this关键字。在使用new 调用的函数中使用时,它指的是正在创建的实例。

function Sample() {
    this.myInstanceVar = true;
}

当然,这将针对您创建的Sample的每个实例运行,因此b会在其中存储不同的true