什么是a = a;?分析jQuery源代码

时间:2011-10-29 20:26:19

标签: javascript jquery

来自jQuery 1.7rc1 source code(第1822-24行):

if ( jQuery.isArray( name ) ) {
        name = name;
}

拥有name = name有什么意义?这两个name可能不同吗?

3 个答案:

答案 0 :(得分:4)

我认为它是为了便于阅读而添加的。名称应该是一个数组,并不总是如此。在某些情况下,它会转换为数组,但在这种情况下,它“很好”。

整个片段:

            // Support space separated names
            if ( jQuery.isArray( name ) ) {
                name = name;
            } else if ( name in thisCache ) {
                name = [ name ];
            } else {

                // split the camel cased version by spaces
                name = jQuery.camelCase( name );
                if ( name in thisCache ) {
                    name = [ name ];
                } else {
                    name = name.split( " " );
                }
            }

答案 1 :(得分:4)

该声明可能被添加为与其他声明一致。 name = name可以省略,但可能会保持清楚地显示块的功能。

具有完全相同名称的变量无法保持不同的值,彼此相邻。

代码

// Support space separated names
if ( jQuery.isArray( name ) ) {
   name = name;
} else if ( name in thisCache ) {
    name = [ name ];
} else {
    // split the camel cased version by spaces
   name = jQuery.camelCase( name );
   if ( name in thisCache ) {
       name = [ name ];
   } else {
       name = name.split( " " );
   }
}

答案 2 :(得分:2)

看起来它只是所有分支if语句之间的一致性(它们都分配name)。