Javascript,原型不继承

时间:2016-03-24 20:24:28

标签: javascript inheritance

我在Mozilla开发者网络的帮助下开始在Javascript中使用原型。

我的问题是我有两种类型:def frange(x, y, jump): while x < y: yield x x += jump time=15 for i in frange(0,time,0.1): x = float(i) print (x).is_integer() Field,它们继承了TextField。 我想从Field创建一个Object并调用一个继承的方法TextField。这是代码:

writeForm

但是最后一行给了我一个 Uncaught TypeError:myfield.writeForm不是函数。我真的不明白为什么它找不到我的方法。

你能帮帮我吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

首先,您将要使用以下任一方法实例化TextField的实例:

Object.create(TextField.prototype);
new TextField();

我建议您使用new TextField(),因为您已经定义了构造函数。

接下来,second parameter to Object.create采用一组属性描述符,这与仅直接向对象分配属性不同。要了解属性描述符的工作原理,请查看Object.defineProperties。相反,您需要在创建Field.prototype的实例后将您的函数直接分配给原型。

TextField.prototype = Object.create(Field.prototype);
TextField.prototype.writeForm = function() {
  Field.prototype.writeForm.apply(this, arguments);
  // Fonction à surcharger
  console.log('writeForm TextField');
};