我试图从同一个类定义中获取两个对象。但是它们似乎共享相同的属性。我该怎么办?
http://jsfiddle.net/dagod/nuam8dks/2/
myclass = function() {
this.data.push(Math.random(1000));
};
myclass.prototype.data = [];
a = new myclass();
b = new myclass();
console.log(a.data);
console.log(b.data); //same as a.data
答案 0 :(得分:0)
我刚刚做了其他事情!
myclass = function() {
this.data = [];
};
现在您只需执行myclass.data =
即可访问它就我个人而言:
var MyNameSpace = {
SomeFunction: function() {
Some code
};
this.somevariable = somevalue;
};
然后你可以去myNameSpace.myfunction()或myNameSpace.myVar = Value
答案 1 :(得分:0)
见elclanrs的评论。
var Myclass = function() {
this.data = [];
this.data.push(Math.random(1000));
};
答案 2 :(得分:0)
您需要在构造函数中声明您的成员变量,而不是让它们成为原型的一部分。在javascript中oop可能是丑陋和不直观的。 (这就是为什么有那么多的oop库用于javascript)
ds.make.class({
type: 'MyClass',
constructor: function(x){
this.a = x;
}
});
var c1 = new MyClass(1);
var c2 = new MyClass(2);
console.log( c1.a ); // output: 1
console.log( c2.a ); // output: 2
答案 3 :(得分:-1)
您可以按如下方式获得所需的结果:
myclass = function() {
this.data = Math.random(1000);
};
//myclass.prototype.data = [];
var a = new myclass();
var b = new myclass();