Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有实例变量的javascript函数_Javascript - Fatal编程技术网

带有实例变量的javascript函数

带有实例变量的javascript函数,javascript,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; con

我试图创建一个函数,每个赋值都有一个实例变量,例如

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;
希望你能明白这一点:-

更新:>

我对示例作为实例不感兴趣,因为它是我正在引用的函数。我希望Sample具有某种特定于我引用Sample的范围/上下文的变量或实例

function Sample() {
    Sample.myInstanceVar = true; // <--- This var should be instance-specific
}
否。它将引用复制到前面提到的全局对象

如何创建实例:

新的是重要的一点。如果没有参数,则这些参数是可选的,但包含它们是一种好的样式

如何在实例上定义属性:

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

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

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

您完全误解了示例。您实际上没有anyvar a=Sample;是对示例函数的引用,而不是实例。你想用它实现什么?我在几个地方引用了这个示例函数,我想知道它是在哪个范围内运行的。@Flexo:这完全不可能。将变量指向函数不会改变函数。这对我来说不起作用,因为Sample now是一个类型对象,而不是一个类型函数。我需要Sample是一个具有范围/上下文变量的函数specific@Flexo由于您没有为您的问题提供任何上下文,因此任何人都很难针对您的实例提供答案。上面的答案回答了你提出的问题,现在仍然如此。在处理这样的示例时,您没有实例,因此,如果实例一开始不存在,您就无法对其进行任何特定的处理
var a = new Sample();
function Sample() {
    this.myInstanceVar = true;
}