gpt4 book ai didi

Javascript 对象枚举

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:21:32 24 4
gpt4 key购买 nike

在控制台中将 "property" 放入/更改为 this[property] 有什么区别,我相信两者都指的是相同的表达式,但后者给了我 [object , Object] 当我调用函数时。

var rockSpearguns = {
Sharpshooter: {barbs: 2, weight: 10, heft: "overhand"},
Pokepistol: {barbs: 4, weight: 8, heft: "shoulder"},
Javelinjet: {barbs: 4, weight: 12, heft: "waist"},
Firefork: {barbs: 6, weight: 8, heft: "overhand"},
"The Impaler": {barbs: 1, weight: 30, heft: "chest"}
};

rockSpearguns["listGuns"] = function(){
for (var property in this) {
if(this[property]["heft"]!==undefined){
console.log("Behold! " + this[property] + ", with " +
this[property]["heft"] + " heft!");
}
}
}

rockSpearguns["listGuns"]();

最佳答案

property 将是被循环对象的键("Sharpshooter", "Pokepistol", ...)字符串。

this[property] 将是所有对象的对象的值。将对象与字符串连接时,通过调用其函数 toString 将对象转换为字符串。所以:

var obj = {};
var string = "Hello. I'm " + obj;

等同于:

var obj = {};
var string = "Hello. I'm " + obj.toString();

obj.toString() 在这种情况下将返回 [object Object]"

关于括号和点符号,这里是 MDN 上的文档.

关于Javascript 对象枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43541954/

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