这是徐超胜的前端开发博客

关于三元运算符的一个问题

在看《JavaScripot权威指南》这本书,看到三元运算符这一块,于是尝试写了这么一个三元运算:

    var x = 1;
    var y = (x == 1 ? function(){return 1}:function(){return -1})
    console.log(y);

结果,各位看官你觉得Y等于多少? y = function(){return 1},他返回的直接就是就是这个函数,而不是函数执行的结果。如果需要结果的话还得让函数立即执行。应该是这样:

    var x = 1;
    var y = (x == 1 ? (function(){return 1})():(function(){return -1})());
    console.log(y)


因为函数也是对象,也是能够被返回的。就这样

posted @ 2013-03-16 21:44  荒村听雨_  阅读(200)  评论(0编辑  收藏  举报