假设:
Number.prototype.add = methodize(add);
function methodize(func) {//a function that converts a binary function to a method
return function (x) {
//console.log(x);
console.log(this);
return func(x,this);
}
}
function add(x, y) {
return x + y;
}
console.log((3).add(4));
最终行
(3).add(4)
如果更改为3.add(4)
会抛出异常;如果不更改,则返回7。示例:http://jsfiddle.net/smacky311/m3NwK/2/ 为什么会发生这种情况呢?我读过的一些资料说,JSON周围的括号可以用于将JSON转换为对象字面量。然而,由于初始的
{
并不适用于这种情况,所以表达式被解释为一个对象字面量。在什么条件下解释器会确定一个字面量是一个表达式?是否每次添加括号时都会如此?
3..add(4)
是有效的 :-) - gen_Eric