avalon是一款優(yōu)雅&優(yōu)秀的MVVM框架,最近我在學(xué)習(xí)它,看源碼的過程中,學(xué)習(xí)到了屬性劫持(建議大家使用avalon,至少也得學(xué)習(xí)一下,能學(xué)到很多東西)例如我可以劫持Element.prototype的innerHTML和Node.prototype的nodeValue屬性但是在safari中發(fā)現(xiàn)了一些兼容性問題劫持innerHTML的例子劫持innerHTML,在safari中拋錯了,當(dāng)然,我知道什么原因,由于configurable在safari中的值是false,故拋錯劫持nodeValue的例子我想知道有沒有什么變通的方法或黑魔法來達到在safari中劫持這兩個屬性的目的?在一次avalon的修復(fù)中發(fā)現(xiàn)了司徒使用了__defineSetter__來代替defineProperty然后解決了這個問題,但是經(jīng)過我自己寫碼測試(直接在safari的console中測試的),發(fā)現(xiàn)沒有解決,請問我那點兒錯了?
Object.defineProperty在safari中的奇怪行為
www說
2018-09-13 09:09:58
