我可以使用+/-等扩展对象吗?

我尝试使用运算符扩展本机对象。有用。你能想到会有副作用吗?
Number.prototype['+++'] = function(n){
    return this + (2*n);
};

String.prototype['+'] = function(){
    return this += [].slice.call(arguments).join('');
}

alert( 10['+++'](10) ); //=> 30
alert( 'hello '['+']('world ','and ','see you later!') ); 
      //=> hello world and see you later!
另见这个jsfiddle     
已邀请:
对你正在做的事情不应该有任何副作用。请记住,您不会将您正在执行的操作称为“运算符重载”,或​​者您的代码用户可能认为他们实际上可以使用运算符。您可能还想问自己,“这真的能让编写代码变得更容易吗?”     
我看不出这会对任何事情产生什么影响。看起来唯一的方法是通过一个错字,在它通知开发人员之前没有这样的操作员(我假设),但现在它会让你这样做。虽然我不是一个经验丰富的JavaScript开发人员。     
alert( 'hello '['+']('world ','and ','see you later!') );
是的,做这样的事情有副作用 - 它使你的代码不可读。当你想出这个计划时,你到底吸烟了什么? 此外,您所做的与运营商无关。您只是创建一个名称恰好是“+”或“+++”的对象属性。如果解释器认为它是运算符,则“+”字符只是运算符。如果它在字符串文字中,那么它只是另一个字符。     

要回复问题请先登录注册