这个奇怪的JavaScript数组语法是什么?

sos*_*osc 3 javascript syntax

我在搜索google和stackoverflow时遇到了一些麻烦,无法解答这段JavaScript代码的作用:

obj['e'+type+fn]( window.event );
Run Code Online (Sandbox Code Playgroud)

对我来说,这看起来像一个带参数/参数的数组元素:

array[index](argument);
Run Code Online (Sandbox Code Playgroud)

但是,我只能猜测这是做什么的.这相当于:

array[index]=argument
Run Code Online (Sandbox Code Playgroud)

哪个是为数组元素赋一个参数?

如果有人能够提供一个简单/通用的例子,说明这样做会很棒.我试图破译John Resig的addEvent()实施.我并不是在寻找这个实现或与之相关的示例的解释,但更像是一个像MDC这样的愚蠢的例子用于使用一些想象产品的调用.

bra*_*rad 5

obj['e'+type+fn]( window.event );
Run Code Online (Sandbox Code Playgroud)

这只是访问对象属性的一种方法.例如,如果你有一个对象

a = {
 name: 'someName'
 age: 20
};
Run Code Online (Sandbox Code Playgroud)

您可以使用a.name或访问名称,如上所述a['name'].

他使用[]符号的原因是他可以从多个字符串构建密钥.

因此,如果type=clickfn=foo他正在访问obj.eclickfoo.要么obj['eclickfoo']

对象的这个属性必须是一个方法,因为他使用()调用它; 所以,他说:

obj.eclickfoo( window.event );
Run Code Online (Sandbox Code Playgroud)

或同等学历

obj['eclickfoo']( window.event );
Run Code Online (Sandbox Code Playgroud)