在我的项目中,我无意中使用了以下代码,但惊讶地发现它可以正常工作:
HTML
<span id="output"></span>
Javascript
var myObject = {
'a': '----First---',
'b': '----Second---',
'c': '----Third----'
};
var myArray = ['a'];
// First Case
output.innerHTML = myObject[myArray];
var myArray2 = ['b'];
// Second Case
output.innerHTML += myObject[myArray2];
var myArray3 = ['a', 'b'];
// Third Case
output.innerHTML += myObject[myArray3];
输出
----First-------Second---undefined
Jsbin链接:http://jsbin.com/godilosifu/1/edit?html,js,output
我直接访问对象内的数组引用,但在所有情况下都应该是未定义的,但当数组大小为1时,它总是获取第一个元素并将其用作对象键。
我想知道这个概念叫什么,为什么会发生这种情况?