GtkWarning: gtk_text_buffer_emit_insert: assertion `g_utf8_validate (text, len, NULL)' failed
有没有办法为基元编写自定义Number.prototype.valueOf=function(){
alert('works!');
}
'str'+123; // no alert
'str'+(new Number(123)); // alert
方法?即有没有办法让valueOf()
来电'str'+123
?
答案 0 :(得分:3)
即。有没有办法让
'str'+123
来电alert()
?
不,你必须先做一些事情来将原语提升到它的等价对象,这条线不能做(我认为你不想这样做)。 addition operator (他们称之为连接)将使用规范ToString
abstract operation将数字转换为字符串。对于数字,ToString
抽象操作does the steps below,不涉及使用Number
或Object
原型中的任何内容。
The ToString
abstract operation applied to numbers:
"NaN"
。"0"
。"-"
和ToString( - m )的字符串并置。"Infinity"
。0
”。.
”,然后是剩余的
s 的十进制表示的 k-n 位。0
”组成的字符串,后跟a
小数点'.
',后跟 - n 出现的字符
'0
',后跟 s 的十进制表示的 k 位。e
”,后跟加号“+
”或减号
'−
'根据 n -1是正还是负,然后是
整数abs的十进制表示( n -1)(没有前导零)。e
”,后跟加号
根据 n -1是否为“+
”或减号“−
”
正数或负数,后跟整数abs的十进制表示( n -1)(没有前导零)。