CountDown=function(params){
this.params=params||{};
var obj=params.obj;
var deText=params.deText;
var delay=params.delay||60;
}
CountDown=function(params){
params=params||{};
var obj=params.obj;
var deText=params.deText;
var delay=params.delay||60;
}
CountDown=function(obj,deText,delay){
this.obj=obj;
this.deText=deText;
this.delay=delay||60;
}
当要传入的参数较多时,应该怎么来写及分类,里面的this有什么作用?我想知道用原生js写函数,当参数较多时(几十个),该怎么来设置他的默认值全部都写成this.delay=delay||60这种形式太麻烦了吧,有其他办法吗??
我知道jq可以这样:
function example(setting){
var defaultSetting={
name:'小红',
age:'30',
sex:'女',
phone:'100866',
QQ:'100866',
birthday:'1949.10.01'
};
$.extend(defaultSetting,settings);
var message='姓名:'+defaultSetting.name
+',性别:'+defaultSetting.sex
+',年龄:'+defaultSetting.age
+',电话:'+defaultSetting.phone
+',QQ:'+defaultSetting.QQ
+',生日:'+defaultSetting.birthday
+'。';
alert(message);
}
example({
name:'小红',
sex:'女',
phone:'100866'
});
//输出:姓名:小红,性别:女,年龄:30,电话:100866,QQ:100866。
如果用原生的话该怎么写?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
$.extend({},params.default,PARAMS)
传入一个对象,覆盖默认值,jQuery方法extend
原生的在ES6已经可以
传送门:
https://developer.mozilla.org...
http://babeljs.cn/docs/learn-...
这样了!当然兼容性略差了,不过用上babel都不是问题- -...
感觉for in对传入对象进行遍历也是可以的,不过没实践过,毕竟几十个参数的情况还没遇到过
主要还没看JQuery源码,不然从里面已经会找到不错的思路吧
es6有Object.assign。
你用原生es5,封装一个跟$.extend一样的方法就行了。
jquery也是js写的,封装方法只是为了方便而已,你用原生,照他的封装就行了。