我试图将原型(prototype)功能与其他站点提供的示例代码一起使用。

我简化了代码,并在下面列出了它。使用它时,出现以下错误:TypeError:this.createChart不是函数。仅当我尝试在我的网站上实现代码时,我才不会在jsfiddle上收到此错误。

我正在工作的jsfiddle在这里:http://jsfiddle.net/56vjtv3d/76

有什么建议么?谢谢!

 function Meteogram(A,B) {
      this.A = A;
      this.B = B;
      this.createChart();
    }

    Meteogram.prototype.createChart = function() {
      alert('test');
      //Will do other stuff here
    };

最佳答案

此代码可以正常工作,您可能未正确初始化对象

您的Meteogram函数被称为“对象构造函数”,它可用于创建多个类似的对象,并根据此构造函数创建新对象,您需要使用new关键字

我们已经有了:

function Meteogram(A,B) {
    this.A = A;
    this.B = B;
    this.createChart();
}

Meteogram.prototype.createChart = function() {
    alert('test');
    //Will do other stuff here
}

现在..

这可以工作:
var m = new Meteogram('a', 'b');
// Now m is an instance of Meteogram !!

这不会是:
var m = Meteogram('a', 'b');
// Uncaught TypeError: this.createChart is not a function(…)

07-28 10:17