JS函数未从Module执行

时间:2016-11-29 13:29:01

标签: javascript jquery

任何人都可以说我,为什么这种功能不会被执行:

var textStyle = {
      color: function () {
             console.log('test')
             return 'red'
            }
      }
}

但是这个工作正常:

   var textStyle = {
          color: test()
          }
    }

 function test () {
    console.log('test');
        return 'red'
    }

2 个答案:

答案 0 :(得分:1)

我已经通过您的代码添加了评论,以向您展示每行发生的事情以及您获得所看到的行为的原因。

// define a variable textStyle as an object
var textStyle = {
      // with the property color, that refers to the following function
      color: function () {
             console.log('test')
             return 'red'
      }
}

我们在这段代码中没有调用分配给颜色的函数。

现在是第二个片段,我更改了顺序,使其更清晰一点(这是JavaScript中实际发生的事情 - 函数定义被提升)

//define a function called test
function test () {
    console.log('test');
    return 'red'
}

//define a variable textStyle as an object
var textStyle = {
      // with a property color, that refers to **the result** of calling the test function
      color: test()
}

请注意,在这种情况下,我们 调用该函数。

答案 1 :(得分:0)

然后你必须做textStyle.color()

颜色是一种功能而非其结果。

color:test()将是测试返回的内容,而不是实际的函数。

你似乎还有一个额外的'}'同样。