使用功能调用模式扩展对象。怎么样?
问题描述:
小提琴这里:http://jsfiddle.net/rhodee/4NKVH/使用功能调用模式扩展对象。怎么样?
我一直在读的书克罗克福德,想知道什么是行之有效的方法撬开基构造对象,并添加一个函数,该子对象可以访问?
我以为我可以访问我的对象的原型,它似乎是不可能给我目前的代码。
感谢您的任何想法。
答
你有几个误区:
- 你的构造函数返回一个完全无关的对象。不要这样做。返回
this
。 (如果不存在return
声明,构造函数会隐含地执行此操作) - Superconstructor调用在JS中不是非常直观。你需要丑陋的构造
MySuperclass.call(this, arg1, arg2, ...);
,所以在你的案例中mammal.call(this, spec);
在cat
类 - 你需要
new
关键字来实例化一个使用原型链的对象。
请参阅http://jsfiddle.net/4NKVH/5/获取固定版本的代码。