嗨我對jQuery和JavaScript比較新,並且有關於$.extend
的功能的問題。我使用extend
來覆蓋擴展「基類」的類的原型。 可以撥打基地Parent
和兒童/延伸課程A
和B
。 現在當我使用$.extend(true, A.prototype, {someObject: {extraKey: 'value'}});
它似乎也Parent
的原型被改變關於someObject
的內容,導致如果幾個對象/類繼承父母真的很奇怪的行爲。而且這隻有在使用「深度」擴展時纔會發生。jQuery擴展原型
我設法避免這個問題,擴展一個空的對象與各自的原型,然後使用擴展的返回值作爲新的原型。例如。 A.prototype = $.extend(true, {}, A.prototype, {someObject: {extraKey: 'value'}});
爲了證明我創造了這個小的jsfiddle問題:http://jsfiddle.net/x8UtF/12/
實際的問題:是否有辦法讓周圍的空的對象和東西才行extend(true, X.prototype, {});
我對javascript很新,所以我不能真正解釋它如何用這個原型設計來調用它。 – clentfort
也許看看代碼,在小提琴中。它可能比我混淆的詞更清晰。這是我特意爲此寫的,所以不是來自另一個項目的怪異代碼。 – clentfort
'A.prototype = new Parent();' - 我們不再這樣做了。使用'A.prototype = Object.create(Parent.prototype);' –