像這樣的東西適用於全局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