javascript new不会创建新对象

javascript new does not create new object

本文关键字:对象 新对象 创建 new javascript      更新时间:2023-09-26

我正试图从同一类定义中获取两个对象。然而,它们似乎有着相同的属性。我能做什么?

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

我这么做只是为了别的!

myclass = function() {
    this.data = [];
};

现在你可以访问它,我只需做myclass.data=

就我个人而言,我会这样做:

var MyNameSpace = {
  SomeFunction: function() { 
    Some code
  };
  this.somevariable = somevalue;
};

然后您可以转到myNameSpace.myfunction()或myNameSpace.miVar=Value

请参阅elclans的注释。

var Myclass = function() {
    this.data = [];
    this.data.push(Math.random(1000));
};

您需要在构造函数中声明成员变量,而不是将它们作为原型的一部分。javascript中的oop可能很难看,也不直观。(这就是为什么有这么多javascript的oop库)

使用ds.oop

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

您可以获得如下所需的结果:

myclass = function() {
    this.data = Math.random(1000);
};
//myclass.prototype.data = [];
var a = new myclass();   
var b = new myclass();

jsfiddle