假设:
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.
DEMO:http://jsfiddle.net/smacky311/m3NwK/2/
为什么会发生这种情况?我读到JSON周围的括号可用于将JSON转换为对象文字。但是,在描述过程的方式中,表达式被解释为对象文字,因为初始{
在这种情况下不适用。
解释器在什么条件下确定文字是表达式?我们什么时候添加括号?
答案 0 :(得分:6)
3.
被解析为十进制数字(如3.0
)
要使用.
访问成员,您需要阻止它作为数字文字的一部分进行解析。
在.
或第二个.
之前添加空格也会有所帮助。