簡體   English   中英

Javascript:函數調用后的方括號

[英]Javascript: Square brackets after function call

我花了大約15分鍾調試一段Javascript代碼,發現問題是我寫的

matches.push[[-1]];

代替

matches.push([[-1]]);

像我的意圖, matches是一個數組。 有人可以向我解釋為什么Javascript沒有在前者上拋出語法錯誤,它的含義是什么?

為什么

matches.push是一個Function Object ,您可以通過點表示法或括號表示法訪問對象屬性和方法。 基本上你要求的東西不是push Function Object ,所以它產生undefined

在此輸入圖像描述

注意

如果您添加了關鍵的東西[-1]matches[[-1]] = "something"這也將是有效的,所以語法有效的,你想做的事根本就沒有什么。

它只是一個屬性訪問者

 var matches = []; matches.push[1] = 'bla' document.write(matches.push[1]); 

基本上你做了以下事情:

matches.push[[-1]]; 

解析為(括號中的單個數字變成一個字符串 ),而對象訪問器是一個字符串 ,你得到

matches.push['-1']

並解決了

undefined

因為屬性'-1'未定義。

js中的所有東西都是一個對象,甚至是一個函數。 我想引擎剛剛將一個(不存在的)字段引用到push函數/對象。 這導致undefined

暫無
暫無

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

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