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学习小结(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 function对象那些迷惑分析
js中function对象是一个令人着迷的东西,但由于他太过于灵活,常常令人迷惑,下面我贴一些代码: 大多数人这样简写: 复制代码 代码如下: function test () {} <jsvascript语言精粹>整本书这样写: 复制代码 代码如下: var test = function () {} 函数可以立即运行并赋值: 复制代码 代码如下: var test = function () {} () // test === undefined var test2 = function
-
每天一篇javascript学习小结(Boolean对象)
创建 Boolean 对象的语法: new Boolean(value); //构造函数 Boolean(value); //转换函数 参数 value 由布尔对象存放的值或者要转换成布尔值的值. 返回值 当作为一个构造函数(带有运算符 new)调用时,Boolean() 将把它的参数转换成一个布尔值,并且返回一个包含该值的 Boolean 对象. 如果作为一个函数(不带有运算符 new)调用时,Boolean() 只将把它的参数转换成
-
每天一篇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
-
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对象模型和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学习小结(基础知识)
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.
随机推荐
- 在Python中处理字符串之isdecimal()方法的使用
- SQLite中的WAL机制详细介绍
- jQuery中关于ScrollableGridPlugin.js(固定表头)插件的使用逐步解析
- VUE中使用Vue-resource完成交互
- Java xml出现错误 javax.xml.transform.TransformerException: java.lang.NullPointerException
- JS实现很酷的水波文字特效实例
- 全面解析多种Bootstrap图片轮播效果
- php中session定期自动清理的方法
- C#中改变DataGridView控件边框颜色的方法
- Android实现透明度可变的标题栏效果
- canvas实现简易的圆环进度条效果
- bootstrap学习使用(导航条、下拉菜单、轮播、栅格布局等)
- 微信小程序教程系列之页面跳转和参数传递(6)
- javascript简单拖拽实现代码(鼠标事件 mousedown mousemove mouseup)
- 3分钟掌握常用的JS操作JSON方法总结
- 在jquery中处理带有命名空间的XML数据
- QQ尾巴病毒核心技术的实现
- CentOS下SSH无密码登录的配置文件
- 配置XManager5连接Linux图形化界面详解
- 轻松掌握python设计模式之访问者模式