gpt4 book ai didi

对象数组的 JavaScript 字面表示法

转载 作者:行者123 更新时间:2023-11-28 12:06:34 25 4
gpt4 key购买 nike

我试图理解一些用 Javascript 编写的代码,但我被语法困住了。

var connections = {}; // I know '{}' means new Object()
var messages = {};

对象包含变量路径、版本等。但是在代码中以下几行做了什么?

connections[ path ] = connections[ path ] || [];
messages[ path ] = messages[ path ] || { version: 0, body: ''};

最佳答案

由于connectionsmessages是对象,因此[]并不表示数组索引,而是表示而是访问成员的语法,其中使用变量来查找变量的名称。

var path = 'x'
connections[path] = connections[path] || [];

以上,因为 path = 'x' 等于

connections.x = connections.x || [];

意思是,如果path的值命名的两个对象的成员存在,则保留它(将其当前值赋给自身),否则(||用于此处合并)分别创建一个新的空数组或一个新的 { version: 0, body: '' }

请注意,合并/逻辑或可以轻松地从左到右链接。例如,在某些情况下,您可能想做这样的事情:

function createItem(color) {

// if a color is specified in the arguments, use that
// otherwise, if a color is specified in the settings object for this instance
// of the current user control, use that. otherwise, fall back to the global
// default values. if none of these settings have been defined, use black.

color = color || instanceSettings.defaultColor
|| globalSettings.defaultColor
|| '#000000';

...

}

关于对象数组的 JavaScript 字面表示法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8572442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com