我一直在閱讀關於Mozilla開發者網絡的Inheritance and the prototype chain,並一直在想它所說的話。使用Object.create擴展原生JavaScript對象
經常使用的一個錯誤特性是擴展Object.prototype或其他內置原型之一。
我明白爲什麼添加一個新的函數到本地對象的原型會導致問題。
Array.prototype.first = function() { return this[0]; };
但是假設有人創建了一個新的數組,並希望它通過其原型鏈有Array
所有功能,並且他們做了這樣的事情:
function MyArray() { Array.apply(this, arguments); }
MyArray.prototype = Object.create(Array.prototype);
MyArray.prototype.first = function() { return this[0]; };
是延長這個方法(繼承從)本地對象也被認爲是不好的做法?如果是這樣,它會造成什麼問題?
http://perfectionkills.com/how-ecmascript-5-still-does-not-allow-to-subclass-an-array/ – Bergi 2015-12-09 12:29:54