这在Javascript中意味着什么?
我注意到以下代码:这在Javascript中意味着什么?,javascript,arrays,numbers,compare,variable-assignment,Javascript,Arrays,Numbers,Compare,Variable Assignment,我注意到以下代码: > (123[45] = 67) == 67 <- true > 123[45] <- undefined >(123[45]=67)==67 123[45] 不能有属性(这就是它们与对象的区别)。另请参见,关于该主题 它实际上正确地响应下一个测试==67 不是属性访问,不是。只是赋值表达式总是计算为其右边的值,不管赋值目标发生了什么 您也可以尝试使用实际对象: var x = { get p() { console.log("getting
> (123[45] = 67) == 67
<- true
> 123[45]
<- undefined
>(123[45]=67)==67
123[45]
不能有属性(这就是它们与对象的区别)。另请参见,关于该主题
它实际上正确地响应下一个测试==67
不是属性访问,不是。只是赋值表达式总是计算为其右边的值,不管赋值目标发生了什么
您也可以尝试使用实际对象:
var x = {
get p() { console.log("getting"); return 42; },
set p(val) { console.log("setting "+val); }
};
x.p = 2; // setting 2
console.log(x.p); // getting 42
console.log((x.p = 67) == 67); // setting 67 true - no "getting"!
console.log(x.p); // still: getting 42
不是“像一个数组”,而是“像一个对象”。