javascript中的对象属性值

Object Property Value in javascript

本文关键字:属性 对象 javascript      更新时间:2023-09-26

下面的代码如何分配属性值:

var foo = {};
var bar = {};
var obj = {};
obj[foo] = "Nishan";
obj[bar] = "Manis";

console.log(obj[foo]);

为什么输出"Manis"

var foo = {};
var bar = {};
var obj = {};
obj.foo = "Nishan";
obj.bar = "Manis";
console.log(obj.foo);
Output: "Nishan"

用"."answers"[]"声明对象属性有什么区别?obj。far = "Nish" and obj[far] = "Nish"

var foo = {};
var bar = {};
var obj = {};
obj.foo = "Nishan";
obj.bar = "Manis";
console.log(obj[foo]);

给未定义的

一个对象作为键是有效的,因为它被转换为字符串,而对象的字符串表示是[object Object],所以你所做的等于

var obj = {};
obj[`[object Object]`] = "Nishan";
obj[`[object Object]`] = "Manis";
console.log( obj[`[object Object]`] ); // returns Manis

基本上你覆盖了键/值对作为foobar的字符串表示是一样的,它们都被转换为[object Object]

编辑:

在第二个和第三个例子中,你可以这样做

var foo = {};
obj.foo = "something";

但是当你使用点符号时,你可以声明任何你想要的属性,对象上的属性foo与上面声明的变量foo没有任何关系,它们甚至没有任何关系,你不妨这样做

var foo = {};
obj.didgeridoo = "something";

相关性是一样的,没有。

使用方括号表示法访问属性时,必须传入一个字符串

foobar都是对象

当您将对象转换为字符串时,默认情况下,您将得到类似"[Object object]"的结果。

foo.toString() === bar.toString() so obj[foo] === obj[bar] .