JavaScript:使用函数返回的对象,而不使用对象的对象

标签 javascript jquery

我是 JavaScript/jQuery 新手。想知道是否有更好的方法通过函数返回对象。

//this is the Object creator.
function makeNewPlayer(name, score) {
    var player = {};
    player.name = name;
    player.score = score;

    return player;
};

这就是我使用该功能的方式。

var player_info = makeNewPlayer('Bob' ,100);

但是,当我使用该对象时,我需要这样调用它:

player_info.player.name
player_info.player.score

看起来很愚蠢,有什么办法可以像这样直接使用对象吗?

player_info.name
player_info.score

编辑:

因为我不知道该函数将创建多少个对象。 假设有一个 for 循环来生成 Score_1、score_2 等。

function makeNewPlayer(name, score) {
    var player = {};
    player.name = name;

    for(i=0, i<number_of_score, i++){
        eval("player.score_" + i) = score[i];
    };

    return player;
};

最佳答案

您可以使用解构赋值来声明全局或局部范围的变量

//this is the Object creator.
function makeNewPlayer(name, score) {
  var player = {};
  player.name = name
  player.score = score

  return player;
};

var player_info = makeNewPlayer("Bob", 100);

{
  let {name: _name, score} = player_info;
  // do stuff with `_name`, `score`
  console.log(_name, score);
}

关于JavaScript:使用函数返回的对象,而不使用对象的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45704169/

相关文章:

javascript - 数组从js到php,计算数组长度出错

javascript - 如何根据选择框中的选项值更改视频的 src 值

javascript - 悬停父 div 更改 0 宽度子 div 以匹配包含的图像宽度

javascript - 在 Javascript/Coffeescript/jQuery 中是否有与 Ruby 的发送等效的东西?

javascript - 动态 jQuery 航点循环

javascript - Angular js 模块无法加载

javascript - 如何使用文档客户端修改 dynamodb 中嵌入列表中的元素

javascript - 为什么我的 javascript 只能随机打开或者在 Rails 中清除缓存后才打开?

javascript - 展开和折叠菜单项

javascript - 如何在 JavaScript 中通过 id 和 class 选择元素?