gpt4 book ai didi

javascript - 什么是冒号(:) in JavaScript represent?

转载 作者:行者123 更新时间:2023-12-03 13:21:03 26 4
gpt4 key购买 nike

这可能是一个愚蠢的菜鸟问题,但 : 在以下上下文中表示什么:

var stuffToDo = {
'bar' : function() {
alert('the value was bar -- yay!');
},

'baz' : function() {
alert('boo baz :(');
},

'default' : function() {
alert('everything else is just ok');
}
};

if (stuffToDo[foo]) {
stuffToDo[foo]();
} else {
stuffToDo['default']();
}

是否将函数存储到每个变量中?

最佳答案

这是 object literal [MDN] :

var obj = {
key: value
};

// obj.key === value; // true

它分配 value到房产 keyobj .虽然没有限制 value可以(嗯,它必须是可分配的), key 有限制: 它必须是 identifier name ,字符串文字或数字文字。

更多详情请查看 section 11.1.5 ECMAScript 规范。

字面符号类似于:
var stuffToDo = {}; // <-- empty object literal

stuffToDo.bar = function() {...};
// or stuffToDo['bar'] = ...

stuffToDo.baz = function() {...};
// or stuffToDo['baz'] = ...

最大的区别在于,当使用对象字面量时,在声明期间不能访问对象的其他属性。

这将不起作用:
var obj = {
foo: value,
bar: obj.foo
};

而这样做:
var obj = {};
obj.foo = value;
obj.bar = obj.foo;

为了完整起见,JavaScript 中还有另外两种冒号用法:
  • Conditional (ternary) operator [MDN] :
    var val = condition ? true-value : false-value;
  • Labels [MDN] :
    someLabel: var x = 5;
  • 关于javascript - 什么是冒号(:) in JavaScript represent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7147273/

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