在文字周围揭开括号的神秘面纱

时间:2014-02-04 15:18:07

标签: javascript

假设:

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转换为对象文字。但是,在描述过程的方式中,表达式被解释为对象文字,因为初始{在这种情况下不适用。

解释器在什么条件下确定文字是表达式?我们什么时候添加括号?

1 个答案:

答案 0 :(得分:6)

3.被解析为十进制数字(如3.0) 要使用.访问成员,您需要阻止它作为数字文字的一部分进行解析。

.或第二个.之前添加空格也会有所帮助。