下面这不会引发任何错误:类型错误:不使用的功能,当新
Function.prototype.method = function (name, func) {
this.prototype[name] = func;
};
Function.method('inherits', function (Parent) {
this.prototype = new Parent();
this.prototype.construct = this;
});
var p = function(){}
var c = function(){}
c.inherits(p)
但下面这引发了“类型错误:_a.inherits是不是一个功能”:
Function.prototype.method = function (name, func) {
this.prototype[name] = func;
};
Function.method('inherits', function (Parent) {
this.prototype = new Parent();
this.prototype.construct = this;
});
//var p = function(){}
//var c = function(){}
function a(){}
function b(){}
_a = new a();
_b = new b();
_a.inherits(_b)
从我读到的,新的返回值是一个函数。它必须是一个函数,因为它具有可以使用和分配的原型属性以及指向自身的构造函数属性。在原型查找算法中,在通过Object.prototype之前,它应该在Function.prototype中发现“继承”。没有?
为什么你认为在'kid'存在'inherits'方法? – user2357112 2014-08-28 04:08:06
@ user2357112因为kid是一个函数,并且在Function.prototype上创建了继承,并且原型查找算法在碰到Object.prototype之前应该通过Function.prototype。 – JohnMerlino 2014-08-28 04:09:54
@ user2357112它只有在使用new关键字时才会失败。没有新的关键字,不会引发错误。新的关键字应该返回一个函数,毕竟只有函数有一个原型属性和一个指向函数本身的构造函数。 – JohnMerlino 2014-08-28 04:20:16