*/\r
\r
Function.prototype.apply || (Function.prototype.apply = function (x, y) {\r
- var a, i, r, j;\r
+ var apply = '__apply',\r
+ a, i, r, j;\r
+\r
x = x || window;\r
y = y || [];\r
\r
// apply 内で apply を呼んだ場合に備える\r
if( x === window ){\r
- x.__apply = void 0;\r
+ x[ apply ] = void 0;\r
} else {\r
- if( x.constructor && x.constructor.prototype.__apply ){\r
- delete x.constructor.prototype.__apply;\r
+ if( x.constructor && x.constructor.prototype[ apply ] ){\r
+ delete x.constructor.prototype[ apply ];\r
} else\r
- if( x.__apply ) delete x.__apply;\r
+ if( x[ apply ] ) delete x[ apply ];\r
};\r
\r
- x.__apply = this;\r
- if (!x.__apply) x.constructor.prototype.__apply = this;\r
+ x[ apply ] = this;\r
+ if (!x[ apply ]) x.constructor.prototype[ apply ] = this;\r
j = y.length;\r
switch (j) {\r
- case 0: r = x.__apply(); break;\r
- case 1: r = x.__apply(y[0]); break;\r
- case 2: r = x.__apply(y[0], y[1]); break;\r
- case 3: r = x.__apply(y[0], y[1], y[2]); break;\r
- case 4: r = x.__apply(y[0], y[1], y[2], y[3]); break;\r
- case 5: r = x.__apply(y[0], y[1], y[2], y[3], y[4]); break;\r
- case 6: r = x.__apply(y[0], y[1], y[2], y[3], y[4], y[5]); break;\r
- case 7: r = x.__apply(y[0], y[1], y[2], y[3], y[4], y[5], y[6]); break;\r
- case 8: r = x.__apply(y[0], y[1], y[2], y[3], y[4], y[5], y[6], y[7]); break;\r
- case 9: r = x.__apply(y[0], y[1], y[2], y[3], y[4], y[5], y[6], y[7], y[8]); break;\r
+ case 0: r = x[ apply ](); break;\r
+ case 1: r = x[ apply ](y[0]); break;\r
+ case 2: r = x[ apply ](y[0], y[1]); break;\r
+ case 3: r = x[ apply ](y[0], y[1], y[2]); break;\r
+ case 4: r = x[ apply ](y[0], y[1], y[2], y[3]); break;\r
+ case 5: r = x[ apply ](y[0], y[1], y[2], y[3], y[4]); break;\r
+ case 6: r = x[ apply ](y[0], y[1], y[2], y[3], y[4], y[5]); break;\r
+ case 7: r = x[ apply ](y[0], y[1], y[2], y[3], y[4], y[5], y[6]); break;\r
+ case 8: r = x[ apply ](y[0], y[1], y[2], y[3], y[4], y[5], y[6], y[7]); break;\r
+ case 9: r = x[ apply ](y[0], y[1], y[2], y[3], y[4], y[5], y[6], y[7], y[8]); break;\r
default:\r
a = [];\r
for (i = 0; i < j; ++i)\r
};\r
// ie5\r
if( x === window ){\r
- x.__apply = void 0;\r
+ x[ apply ] = void 0;\r
} else {\r
//alert( typeof x );\r
- if( x.constructor && x.constructor.prototype.__apply ){\r
- delete x.constructor.prototype.__apply;\r
+ if( x.constructor && x.constructor.prototype[ apply ] ){\r
+ delete x.constructor.prototype[ apply ];\r
} else\r
- if( x.__apply ) delete x.__apply;\r
+ if( x[ apply ] ) delete x[ apply ];\r
};\r
return r;\r
});\r