js 或jquery定义方法时,参数不固定是怎么实现的
展开全部
如果参数不固定,在定义方法时,就不要接受参数,或定义一个参数object:
//①不定义接受参数的方式来接受参数(arguments)
function getparams(){
//利用arguments来接受参数,arguments表示参数集合,
//里面存放的调用这个方法所传递过来的所有参数的集合
var _q=arguments[0];//0位置表示q参数
var _a=arguments[1];//1位置表示a参数
var _b=arguments[2];//2位置表示b参数
var _c=arguments[3];//3位置表示c参数
var _d=arguments[4];//4位置表示d参数
}
getparams(q,a,b,c,d);
//②定义一个object方式接受不固定的参数的方式
function getparams(obj){
var a=obj['a'];//接受obj中的a参数
var b=obj['b'];//接受obj中的b参数
}
getparams({'a':1,'b':2,'c':3,'d':4});
上面2中方式,都需要自己清楚,第几个参数是做什么用的,也就是定义参数位置的作用。不要用错了。
展开全部
总的来说,可以通过arguments这一个对象来实现。
function method() {
var slice = [].slice,
args = arguments.slice(1);// 参数忘了。。。应该是1
//这时候参数就在args里面。args是数组。
.....
}
//另外一种,可能是通过对象实现?
比如
function method(obj) {
var arg1 = obj.arg1 || arg1,
arg2 = obj.arg2 || arg2,
....
//上面的arg1, arg2 是默认的值。
}
var obj = {
arg1: 2,
}//这时候就一个参数;
var obj2 = {
arg1: 2,
arg2: 3
}
这样就可以实现参数不固定。我记得后面一种方式经常在jQuery里能看见。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2017-12-16
展开全部
这个实例可能是你想知道的内容。
<script type="text/javascript">
window.onload = function(){
// 初始化调用一次 myfun,参数为 c ,c 就是最下边的 function c,是一个方法
myfun(c);
}
// 使用 var ** = function(){} 定义一个方法,其中的参数为 newfun
var myfun = function(newfun){
alert("我是方法");
// newfun 使用() 结尾,js自动把 newfun 转为方法调用一次
newfun();
}
function c(){
alert("我是参数");
}
<script type="text/javascript">
window.onload = function(){
// 初始化调用一次 myfun,参数为 c ,c 就是最下边的 function c,是一个方法
myfun(c);
}
// 使用 var ** = function(){} 定义一个方法,其中的参数为 newfun
var myfun = function(newfun){
alert("我是方法");
// newfun 使用() 结尾,js自动把 newfun 转为方法调用一次
newfun();
}
function c(){
alert("我是参数");
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先
对于参数不固定 可能是你想代码复用
根据传进来的参数 操作不同的元素
那么你可以 在定义方法时 假设给一个形参
这样你在调用的时候 就要传进去一个实参
对于参数不固定 可能是你想代码复用
根据传进来的参数 操作不同的元素
那么你可以 在定义方法时 假设给一个形参
这样你在调用的时候 就要传进去一个实参
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询