我正在关注JQuery Plugins/Authoring教程,无法弄清 16 和 18 的行arguments
是什么意思。我错过了一些非常基本的东西吗?
(function( $ ){
var methods = {
init : function( options ) {
// ...
},
show : function( ) {
// ...
};
$.fn.tooltip = function( method ) {
// Method calling logic
if ( methods[method] ) {
return methods[ method ].
apply( this, Array.prototype.slice.call( arguments, 1 ));
} else if ( typeof method === 'object' || ! method ) {
return methods.init.apply( this, arguments );
} else {
$.error( 'Method ' + method + ' does not exist on jQuery.tooltip' );
}
};
})( jQuery );
谢谢。
答案 0 :(得分:1)
arguments
是一个类似数组的对象,它包含传递给函数的参数,包括您没有为其提供变量名称的参数。
它类似于数组,但不是数组。它不包含任何数组方法,例如切片,这就是您必须使用Array.prototype.slice.call(arguments,...)
或[].slice.call(arguments,...)
而不是仅使用arguments.slice(...)
答案 1 :(得分:0)
arguments
是一个JavaScript保留关键字,它是一个包含传递给函数的所有参数的数组。
http://msdn.microsoft.com/en-us/library/ie/he95z461(v=vs.94).aspx