没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
function bind(fn, obj) {
if (typeof obj !== 'object') {
throw 'obj is not an object';
}
var args = Array.prototype.slice.call(arguments, 2);//将arguments转换为数组,并去掉前两项
return function () {
/*
形成一个闭包,在此匿名函数中保持了对嵌套父函数中的参数fn、obj,局部变量args的引用,也体现了js的静态(词法)作用域规则,
然后利用apply方法可以改变this指向的特点,使fn执行时,其内部如果出现this则代表传入的参数obj.
*/
fn.apply(obj, args);
};
}
function countdownTimer(endDateParam) {
/*
初始化部分开始
*/
if (this == window) {
return new countdownTimer(endDateParam);
}
if (!endDateParam && typeof endDateParam !== 'object') {
/*
new Date时,三个参数分别代表年月日,月份是从0开始算的,如一月份,第二个参数是0,所以2011,8,11代表2011-9-11;但是如果一字符串形式"2011,8,11"则不是从0开始,但是ie6、7、8不支持此写法,ie9不知道
*/
this.endDate = new Date(2011, 8, 11);
}
if (typeof obj !== 'object') {
throw 'obj is not an object';
}
var args = Array.prototype.slice.call(arguments, 2);//将arguments转换为数组,并去掉前两项
return function () {
/*
形成一个闭包,在此匿名函数中保持了对嵌套父函数中的参数fn、obj,局部变量args的引用,也体现了js的静态(词法)作用域规则,
然后利用apply方法可以改变this指向的特点,使fn执行时,其内部如果出现this则代表传入的参数obj.
*/
fn.apply(obj, args);
};
}
function countdownTimer(endDateParam) {
/*
初始化部分开始
*/
if (this == window) {
return new countdownTimer(endDateParam);
}
if (!endDateParam && typeof endDateParam !== 'object') {
/*
new Date时,三个参数分别代表年月日,月份是从0开始算的,如一月份,第二个参数是0,所以2011,8,11代表2011-9-11;但是如果一字符串形式"2011,8,11"则不是从0开始,但是ie6、7、8不支持此写法,ie9不知道
*/
this.endDate = new Date(2011, 8, 11);
}
资源评论
adanchen
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功