为了账号安全,请及时绑定邮箱和手机立即绑定

有沒有什麼方法可以實現 更改 'string'.__proto__ ?

有沒有什麼方法可以實現 更改 'string'.__proto__ ?

阿波罗的战车 2019-05-22 16:39:40
有沒有什麼方法可以修改目前字串的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();
                            
查看完整回答
反对 回复 2019-05-22
?
慕容708150

TA贡献1831条经验 获得超4个赞

vars='test';
vars1=newString('test');
s.__proto__={
test:function(){
return'test'
}
};//无效
s1.__proto__={
test:function(){
return'test'
}
};//有效
typeofs.test;//undefined
s1.test();//test
                            
查看完整回答
反对 回复 2019-05-22
  • 2 回答
  • 0 关注
  • 478 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信