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中拋錯(cuò)了,當(dāng)然,我知道什么原因,由于configurable在safari中的值是false,故拋錯(cuò)劫持nodeValue的例子我想知道有沒有什么變通的方法或黑魔法來達(dá)到在safari中劫持這兩個(gè)屬性的目的?在一次avalon的修復(fù)中發(fā)現(xiàn)了司徒使用了__defineSetter__來代替defineProperty然后解決了這個(gè)問題,但是經(jīng)過我自己寫碼測(cè)試(直接在safari的console中測(cè)試的),發(fā)現(xiàn)沒有解決,請(qǐng)問我那點(diǎn)兒錯(cuò)了?
Object.defineProperty在safari中的奇怪行為
www說
2018-09-13 09:09:58