gpt4 book ai didi

javascript - 为什么在参数传递期间不计算 JavaScript 哈希对象?

转载 作者:行者123 更新时间:2023-11-28 16:20:24 24 4
gpt4 key购买 nike

对于一个简单的函数,例如

function foo(hash)
{
for(var k in hash){
if (h.hasOwnProperty(k)){
console.log('Key is: ' + k + ', value is: ' + h[k]);
}
}
}

如果你传递一个像

这样的参数
var m = new Object();
m['one'] = 1;
foo(m);

您将在控制台上看到结果,但如果您传递类似的参数

foo(({} ['one'] =1));

foo((new Object()['one'] = 1));

它不会经过for循环,表达式

(new Object()['one'] = 1) == m

返回 false,

(new Object()['one'] = 1) == ({} ['one'] = 1)

返回真

有什么想法为什么不呢?谢谢!!!

最佳答案

此表达式是一个赋值,因此它将返回指定的值,而不是具有名为 one 且值为 1 的字段的新对象。

console.log(new Object()['one'] = 1); // outputs '1'

var m = new Object();
m.one = 1;
console.log(m); //outputs the object with its set property

//Here you are comparing the value 1, returned by the expression in parentheses, to an object
(new Object()['one'] = 1) == m

关于javascript - 为什么在参数传递期间不计算 JavaScript 哈希对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9865368/

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