任何人都可以说我,为什么这种功能不会被执行:
var textStyle = {
color: function () {
console.log('test')
return 'red'
}
}
}
但是这个工作正常:
var textStyle = {
color: test()
}
}
function test () {
console.log('test');
return 'red'
}
答案 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()将是测试返回的内容,而不是实际的函数。
你似乎还有一个额外的'}'同样。