【问题标题】:Initialize array in javascript constructor在javascript构造函数中初始化数组
【发布时间】:2014-10-04 05:30:33
【问题描述】:

我有一个构造函数,我想在要创建的对象中初始化一个数组。这个数组应该包含几个对象。

        function Cluster3DObject(name){
            this.name = name;
            this.array = [];
        }

        Cluster3DObject.prototype.add = function(obj) {
            this.array.push(this.obj);

        };

在这里我定义了“类”,并添加了一个方法“add”,它应该将一个对象推入 this.array..

            var cluster = new Cluster3DObject("clster");

            var testObj = new THREE.CSS3DObject(testDiv);

            var testVector = new THREE.Vector3();

            cluster.add(testObj);

当我调用 cluster.add 方法时,我得到“未定义不是函数错误”,但我似乎无法找出我做错了什么? 我是使用构造函数的新手..

【问题讨论】:

  • 否,add 方法不会导致此错误。它在别的地方。我会检查 THREE 包含的内容。

标签: javascript arrays oop constructor three.js


【解决方案1】:

不是this.obj,只是obj

Cluster3DObject.prototype.add = function(obj) {
     this.array.push(obj);
};

否则它看起来很好,但这不会真正产生"undefined is not a function error",它只会推送undefined,所以错误可能来自尝试使用填充有undefined值的数组?

FIDDLE

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-10
    • 2019-03-04
    • 1970-01-01
    相关资源
    最近更新 更多