有沒有什麼方法可以修改目前字串的proto而不會去修改到String.prototype.splitclassUStringextendsString{split(){console.log('UString:split');return['UString:split'];}}constSTR='♥️?典そこで彼らは\'",オリーブ山と呼ばれる山からエルサレムに帰った。';{letstr=STR.toString();//原始console.log(1,str.split());}{letstr=STR.toString();//此段代碼=無效str.__proto__=Object.assign({},{split:UString.prototype.split,});console.log(2,str.split());}{letstr=STR.toString();//此段代碼=無效str.__proto__=UString.prototype;console.log(3,str.split());}{letstr=STR.toString();//@FIXME雖然成功了但是請看下一段str.__proto__.split=UString.prototype.split;console.log(4,str.split());}{letstr=STR.toString();//@BUG這裡會出錯因為修改str.__proto__等於修改Stringconsole.log(5,str.split());}
2 回答
MMMHUHU
TA贡献1834条经验 获得超8个赞
对日项目么?试试这个str.__proto__=Object.assign({},{split:newUString().split,});或者str.__proto__=newUString();
慕容708150
TA贡献1831条经验 获得超4个赞
vars='test';vars1=newString('test');s.__proto__={test:function(){return'test'}};//无效s1.__proto__={test:function(){return'test'}};//有效typeofs.test;//undefineds1.test();//test
添加回答
举报
0/150
提交
取消