2009-07-28 65 views

回答

6

如果原型對象的實例已經用其他方法擴展,本地對象的實例是否需要更長的時間才能創建和/或使用更多內存?

號無論這些事情應該發生:每個對象都必須保持它的原型的引用,但引用不會得到任何較大的或如果有更多的屬性添加到它引用的對象採取任何更長的時間來檢索。現在

,如果你要足夠額外的方法添加到prototype,它可能會開始影響到查找該類型的對象的方法所需要的時間。這會因實現而有所不同,但如果您發現有差異,我會感到震驚(我懷疑您會在它對運行時速度有顯着影響之前很久才試圖記住所有這些附加方法的名稱)。


編輯:here's a quick & ugly test - 之前,加入500K自定義方法的Array.prototype對象後創建陣列500K實例。沒有可觀的區別;不用擔心...

+0

由於原型遍歷是O(n),所以通過多個原型擴展javascript方法查找鏈增加了查找時間,但是在單個原型上的方法查找是恆定時間O(1)。 – 2009-07-29 04:21:12

相關問題