猿问

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

有沒有什麼方法可以修改目前字串的proto而不會去修改到String.prototype.split
classUStringextendsString
{
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__等於修改String
console.log(5,str.split());
}
阿波罗的战车
浏览 483回答 2
2回答

MMMHUHU

对日项目么?试试这个str.__proto__=Object.assign({},{split:newUString().split,});或者str.__proto__=newUString();

慕容708150

vars='test';vars1=newString('test');s.__proto__={test:function(){return'test'}};//无效s1.__proto__={test:function(){return'test'}};//有效typeofs.test;//undefineds1.test();//test
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答