我一直在寻找对此的解释。我知道,在Javascript中,您可以使用方括号表示法获取/设置对象的属性,但是当您使用' +'时会发生什么?在括号中,像这样:
obj['e'+type+fn] = fn;
我在Javascript& Jon Duckett的Jquery书。他使用此代码作为辅助函数,最初由John Resig创建。
这是完整的代码块。
function addEvent( obj, type, fn ) {
if ( obj.attachEvent ) {
obj['e'+type+fn] = fn;
obj[type+fn] = function(){
obj['e'+type+fn]( window.event );
}
obj.attachEvent( 'on'+type, obj[type+fn] );
} else {
obj.addEventListener( type, fn, false );
}
};
当我把它放在一起时,这就是我所看到的(这对我来说没有意义):
var obj = {
e: fn,
type: fn,
fn: fn
};
答案 0 :(得分:1)
但是在括号中使用'+'时会发生什么
这是一个表达,就像property brackets中的其他内容一样。在这种情况下,它将字符串"e"
与事件类型和stringified侦听器函数连接起来,以获得相当独特的属性名称。