簡體   English   中英

這在Javascript中是什么意思?

[英]What does this mean in Javascript?

我注意到以下代碼:

>  (123[45] = 67) == 67
<- true
>  123[45]
<- undefined

您也可以在瀏覽器中嘗試。

我不明白發生了什么。

123[45]在第一個賦值指令中被視為數組,並且實際上正確地響應了下一個測試== 67 但是,當我嘗試訪問內存位置123[45]我不確定。

那是什么?

基本值不能具有屬性(這就是它們與對象的區別)。 另請參見字符串不是對象,那么為什么它們具有屬性? 為什么不能在javascript中將屬性添加到字符串對象? 在此代碼中,使用Number對象保留屬性並遞增數字會發生什么情況? 關於這個問題。

實際上,它正確地響應了下一個測試== 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM