提问人:Gary 提问时间:6/8/2023 更新时间:6/8/2023 访问量:29
无法为字符串原型定义赋值为“this”
Unable to assign to the value of `this` for a string prototype definition
问:
无法将字符串原型定义的值赋值。this
function testfunction(thisValue) {
thisValue = thisValue || this;
thisValue = "new test";
console.log(thisValue);
this = thisValue; // this throws error
}
Object.defineProperty(String.prototype, 'testfunction', { value: testfunction, enumerable: true });
let s = "i am a test"
s.testfunction()
对于我正在使用的对象。分配新值有什么用。Array
this.push
String
答:
1赞
Pointy
6/8/2023
#1
当然可以向 String 原型添加方法。有些人认为这很可怕,但我的感觉是,如果你小心翼翼,并且你理解了总体上和对你的特定宇宙的影响,那么它并没有那么糟糕。我不是你爸爸,所以做你想做的事。
也就是说,我不会将这些方法列举出来,因为这是修改标准原型的最大问题之一。此外,对于 String、Number 和 Boolean 等内容,您无法修改基础基元值,因为它们是不可变的。当您对字符串基元值调用方法时,发生的情况是,为了计算表达式的目的,实例化了一个包装对象,然后丢弃了该对象。因此,从基本基元字符串(或数字或布尔值)计算某些值的方法可以做一些有趣的事情,但你不能修改这些值。
评论
this