JavaScript为什么在Object的prototype加方法可以使用,在Function加方法无法使用

var F = function(){};
Object.prototype.a = function(){ console.log('前') };
Function.prototype.b = function(){ console.log('端') };
var f = new F();

为什么可以使用方法a()不能使用方法b

阅读 1.5k
2 个回答

因为new F()产生的是个对象只会继承对象的原型链而不是函数的,如果想要执行b,可以这样 (function(){}).b()或者(new Function()).b()

可以这样调用的 F.b()
因为你 var f = new F(); 获得的是一个对象而非一个函数,他的原型链上没有 Function

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题