函数调用在JavaScript中声明对象属性

时间:2016-01-07 16:44:51

标签: javascript

是否可以使用函数调用在js中设置对象属性?我试过了,但没用。

var name = "Richard";

function showName() {
  var name = "Jack"; // local variable; only accessible in this showName function​
  console.log(name); // Jack​
}
console.log(name); // Richard: the global variable

var myObj = {
  name: showName();
};

console.log(myObj.name);

1 个答案:

答案 0 :(得分:0)

  

是否可以使用函数调用在js中设置对象属性?

是的,属性初始化程序的右侧可以包含任何表达式,包括函数调用。将计算表达式,并将结果值分配给属性。 (如果在对象初始值设定项中有多个属性初始值设定项,它们将按源代码顺序执行。)

您的示例无效,因为您没有从name返回showName(因为它有一个额外的;):



var name = "Richard";

function showName() {
  var name = "Jack";
  snippet.log(name);
  return name;       // <== Added return name;
}
snippet.log(name);

var myObj = {
  name: showName()   // <== Removed ;
};

snippet.log(myObj.name);
&#13;
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="//tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
&#13;
&#13;
&#13;

相关问题