对于原型上的函数,我过去会这样做:
var attachShadow = HTMLElement.prototype.attachShadow
HTMLElement.prototype.attachShadow = function (option) {
var sh = attachShadow.call(this, option)
console.log('ShadowDOM Attached!')
return sh
}
在这个例子中,我修改了HTMLElement原型中的attachShadow方法,以便在元素附加新的shadowDOM时得到通知。
现在,我想用类似的方式处理ShadowRoot.prototype.adoptedStyleSheets,但是这次adoptedStyleSheets是一个getter/setter。var adoptedStyleSheets = HTMLElement.prototype.adoptedStyleSheets会引发错误:“Uncaught TypeError:Illegal invocation”。
我不确定该怎么做,如何修改原型上的getter/setter?