Javascript Function对象扩展之延时执行函数
不就利用window对象的setTimeout方法吗?Bingo,一点没错!如果你在一个应用里面常常要“延时执行某某函数”,那末基于DRY的原则,可以针对Function全局对象进行扩展,为函数增加一个延时方法如delay,这样会让你的代码更简洁有效。
扩站Function对象增加delay方法如下:
代码如下:
Function.prototype.delay=function(this1,timeout){
this1=this1||null;
timeout=timeout||0;
var _this=this;
var args=[];
//获取参数,注:第1、第2个参数是保留参数
switch(arguments.length){
case 1:
timeout=parseInt(arguments[0]);
timeout=isNaN(timeout)?0:timeout;
timeout=timeout<0?0:timeout;
break;
default:
for(var i=0;i<arguments.length;i++){
if(i>1){args.push(arguments[i]);};
};
break;
};
var proxy=function(){
_this.apply(this1,args);
};
return window.setTimeout(proxy,timeout);
};
在firefox的firebug插件的控制台下面测试下,代码如:
代码如下:
var xx=function(n){
this.name=n;
};
xx.prototype.hi=function(a,b){
console.log(this.name+"-"+a+"-"+b);
};
var xx1=new xx("levin");
var t=xx1.hi.delay(xx1,1000,"cocoa","yoyo");
xx1.hi("guluglu","jigujigu");
相关推荐
-
每天一篇javascript学习小结(Function对象)
小编两天都没有更新文章了,小伙伴们是不是等着急了,今天开始再继续我们的<每天一篇javascript学习小结>系列文章,希望大家继续关注. 1.Function 函数调用(类似call方法) function callSomeFunction(someFunction, someArgument){ return someFunction(someArgument); } function add10(num){ return num + 10; } var result1 = callSo
-
JavaScript学习小结(一)——JavaScript入门基础
一.JavaScript语言特点 1.1.JavaScript是基于对象和事件驱动的(动态的) 它可以直接对用户或客户输入做出响应,无须经过Web服务程序.它对用户的响应,是采用以事件驱动的方式进行的.所谓事件驱动,就是指在主页中执行了某种操作所产生的动作,就称为"事件".比如按下鼠标,移动窗口,选择菜单等都可以视为事件.当事件发生后,可能会引起相应的事件响应. 1.2.JavaScript是跨平台的 JavaScript是依赖于浏览器本身的,与操作系统无关. 二.JavaScript
-
JavaScript学习笔记之Function对象
在JavaScript中,函数function就是对象. JS中没有方法重载 在JavaScript中,没有方法(函数)重载的概念. 例子: 复制代码 代码如下: <html> <head> <script type="text/javascript"> function add(number) { alert(n
-
浅谈Javascript中Object与Function对象
1.Object对象 原型对象 原型是对象的一个属性,也就是prototype属性,每个对象都有这个内部属性,而且他本身也是一个对象. <script type="text/javascript"> Object.prototype.num= 10; alert("添加原型对象属性:"+ Object.num); Object.num = 20; alert("添加对象属性:"+Object.num); </
-
每天一篇javascript学习小结(Date对象)
1.Date.now() //Date.now() is in ECMAScript 5 //Prior to that, use +new Date() //获取当前时间 var now = (typeof Date.now == "function" ? Date.now() : +new Date()); alert("Right now: " + now); 2.Date.parse()方法 var now = new Date(); alert(now);
-
每天一篇javascript学习小结(Boolean对象)
创建 Boolean 对象的语法: new Boolean(value); //构造函数 Boolean(value); //转换函数 参数 value 由布尔对象存放的值或者要转换成布尔值的值. 返回值 当作为一个构造函数(带有运算符 new)调用时,Boolean() 将把它的参数转换成一个布尔值,并且返回一个包含该值的 Boolean 对象. 如果作为一个函数(不带有运算符 new)调用时,Boolean() 只将把它的参数转换成
-
关于javascript function对象那些迷惑分析
js中function对象是一个令人着迷的东西,但由于他太过于灵活,常常令人迷惑,下面我贴一些代码: 大多数人这样简写: 复制代码 代码如下: function test () {} <jsvascript语言精粹>整本书这样写: 复制代码 代码如下: var test = function () {} 函数可以立即运行并赋值: 复制代码 代码如下: var test = function () {} () // test === undefined var test2 = function
-
每天一篇javascript学习小结(基础知识)
1.字符转换 var s1 = "01"; var s2 = "1.1"; var s3 = "z";//字母'z'无法转换为数字,所以或返回NaN var b = false; var f = 1.1; var o = { valueOf: function() { return -1; } }; s1 = -s1; //value becomes numeric -1 s2 = -s2; //value becomes numeric -1.
-
浅谈javascript对象模型和function对象
javascript中,函数就是对象 复制代码 代码如下: <html> <head> <script type="text/javascript"> function add(number){ alert(number+20); } var add=function(number){ alert(number+20); } function add(number,number1){ alert(number+30); } var a
-
每天一篇javascript学习小结(Array数组)
1.数组常用方法 var colors = ["red", "blue", "green"]; //creates an array with three strings alert(colors.toString()); //red,blue,green alert(colors.valueOf()); //red,blue,green alert(colors); //red,blue,green 2.数组map()方法 var number
随机推荐
- 静态页面加密
- fedora 开机启动/禁止开机启动服务的实现
- 基于Jquery实现焦点图淡出淡入效果
- dos命令介绍
- java 打印一字符串,并在main()方法内调用它
- .NET之后台用户权限管理实现
- android AlertDialog多种使用方法详解
- Node.js文件操作方法汇总
- jQuery Pagination分页插件_动力节点Java学院整理
- 递归实现php数组转xml的代码分享
- 详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
- oracle SQL解析步骤小结
- 浅析jquery数组删除指定元素的方法:grep()
- 用box固定长宽实现图片自动轮播js代码
- 在Linux操作系统中修改环境变量的方法
- Android编程实现监控各个程序流量的方法
- Angular17之Angular自定义指令详解
- Java多线程中wait、notify、notifyAll使用详解
- 使用Python计算玩彩票赢钱概率
- 移动端吸顶fixbar的解决方案详解
