像这样的东西适用于全局Function.prototype。如何在不修改全局Function.prototype的情况下创建函数的继承属性?
Function.prototype.aaa = 1
(function() {}).aaa // => 1
但是有没有把功能继承属性不改变Function.prototype的一种方式?
function MyFunction() { return function() {} }
MyFunction.prototype.bbb = 2
// Can I have (new MyFunction).bbb ?
@ T.JCrowder它是邪恶的! – Raynos 2011-04-05 16:34:52
@Raynos::-)我同意修改Object.prototype是** Absolute Evil **。修改'Array.prototype'是相当*邪恶的,因为人们在他们糟糕的'for..in'循环中搞砸了(并且告诉他们“但是你做错了”并不一定是好的答案) 。但是'Function.prototype'? Enh ... ;-) – 2011-04-05 16:37:43
@ T.JCrowder修改_any_原生原型是邪恶的。我在任意'对象'中使用'for'循环。只要它是一个“Object”,我不在乎Object是'Object'还是'Array'或'Function'或'Number'。因此,修改任何原生原型都会破坏结构良好的通用可扩展和功能样式代码。 – Raynos 2011-04-05 16:44:02