[英]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"
这也将是有效的,所以语法是有效的,你想做的事根本就没有什么。
js中的所有东西都是一个对象,甚至是一个函数。 我想引擎刚刚将一个(不存在的)字段引用到push
函数/对象。 这导致undefined
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.