Javascript 在ES2015严格模式下为数字添加道具

Javascript 在ES2015严格模式下为数字添加道具,javascript,Javascript,我希望能够做到以下几点 console.log(a, typeof a); // prints "3 'number'" console.log(typeof a.mymethod()); // prints 'foobar' 在非严格模式下,这是可能的(至少在节点中),但ECMAScript 2015中的严格模式禁止在基元值()上设置属性 有没有什么方法可以伪造它,比如说使用代理或属性描述符,或者诸如此类的东西?以下设置为使用ES2015/strict模式,似乎可以实现此目的: “严格使

我希望能够做到以下几点

console.log(a, typeof a); // prints "3 'number'"
console.log(typeof a.mymethod()); // prints  'foobar'
在非严格模式下,这是可能的(至少在节点中),但ECMAScript 2015中的严格模式禁止在基元值()上设置属性


有没有什么方法可以伪造它,比如说使用
代理
或属性描述符,或者诸如此类的东西?

以下设置为使用ES2015/strict模式,似乎可以实现此目的:

“严格使用”;
var a=3;
Number.prototype.mymethod=function(){alert(“foobar”)};

a、 mymethod()也不能代理基元。任何
对象
静态方法都不起作用。怀疑这在严格模式下是不可能的。最接近你可能得到的是著名的符号。你可以这样做,将一个对象强制为一个数字将是一个特定的数字,例如,
+{}==3
。这不是我的意思,但这是我问的,所以你会得到答案,尽管修改原型只不过是一个黑客:-)