我在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不是函数。我真的不明白为什么它找不到我的方法。
你能帮帮我吗?
谢谢!
答案 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');
};