Javascript中的链表和对象错误

Javascript中的链表和对象错误,javascript,Javascript,我正在尝试JS及其各种库,但遇到了一个错误,我不太确定如何解释。有关守则如下: function plotPoint (y, next, prev) { this.y = y; this.next = next; this.prev = prev; } function Fourier() { var self = this; self.init() = function() { ... self.firstPoint =

我正在尝试JS及其各种库,但遇到了一个错误,我不太确定如何解释。有关守则如下:

function plotPoint (y, next, prev) {
    this.y = y;
    this.next = next;
    this.prev = prev;
}

function Fourier() {
    var self = this;
    self.init() = function() {
        ...
        self.firstPoint = new plotPoint(250, null, null);
        console.log(self.firstPoint); [1]
        ...
    }

    self.animate() = function() {
        ...
        console.log(self.firstPoint); [2]
        self.updatePlot();
        ...
    }

    self.updatePlot = function() {

        console.log(self.firstPoint); [3]

        //add new point to beginning
        var newPoint = new plotPoint(self.leadPoint.y, self.firstPoint, null);
        self.firstPoint.prev = newPoint
        self.firstPoint = self.newPoint;

        //remove last point from list, leave for collection
        self.lastPoint = self.lastPoint.prev;
        self.lastPoint.next = null;
    }
}
console.log的所有三个结果都显示了正确的对象,但后两个结果都伴随着一个“未定义”:

然后抛出错误“UncaughtTypeError:Cannotsetproperty'prev'of undefined”,参考[3]后面的一行

如果有帮助的话,当程序没有被封装在类中时,它正在工作。我试图修改它,以便将其与dat.GUI一起使用

提前感谢您的回复


编辑:对于jsfiddle

对象
self
没有
newPoint
属性,因此它是未定义的。当您在第106行将
undefined
分配给
self.firstPoint
时,它也会变成
undefined

这里有几件事困扰着我。。。self.init()=函数(){..}似乎不合法。self.init=函数()。接下来,plotPoint不返回任何值,因此此处newPoint的值为。。。空还是未定义?var newPoint=新绘图点(self.leadPoint.y、self.firstPoint、null)@wwwmarty:当函数作为构造函数调用时(即,使用
new
),默认情况下,它返回自身的一个新实例-一个指向
plotPoint
原型的对象。@MrDiggles:用你的代码示例创建一个小提琴怎么样:@DRD我添加了链接到question@MrDiggles当我单击run时,您的JSFIDLE似乎并没有做任何事情(它只是在控制台中显示“PIXI.Container不是一个函数”)。我用的是Chrome45,附带评论。如果您将有几个
Fourier()
的实例,那么为什么不将其所有方法添加到其原型中呢?此外,在这一行中,
self.firstPoint=self.newPoint
,则从未声明过
self.newPoint
,因此它是
未定义的
,这可能是您的问题。哦。是的,这就是问题所在。谢谢你的帮助
[1] plotPoint {y: 250, next: plotPoint, prev: null}
[2] plotPoint {y: 250, next: plotPoint, prev: null}
[3] plotPoint {y: 250, next: plotPoint, prev: null}
[2] undefined
[3] undefined