JavaScript 原型示例

3
我正在尝试使用另一个网站上的示例代码来使用原型功能。我已经简化了代码并在下面列出。当我在我的网站上实现代码时,我会得到以下错误: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
    };

1
这段代码(当然还要加上 new Meteogram())对我来说是正常工作的,我在 JSFiddle 中也没有看到任何错误。 - Andrew Burgess
我把这个粘贴到控制台里了..它可以工作。 - animaacija
1
你必须向我们展示不起作用的代码。 - Bergi
1个回答

2

这段代码没有问题,你可能没有正确初始化你的对象。

你的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(…)

1
我已经成功让它工作了。我的代码中没有正确初始化。谢谢你的帮助! - Aquabug222

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接