javascript 让实例的方法都异步执行
2011-09-13 10:30
591 查看
var C = function(){ this._methodList = []; } C.prototype.fire = function(obj){ var instance = this; while(obj = this._methodList.shift()){ if(isFinite(obj.fn)){ var time = new Date; instance.timeoutID = setTimeout(function(){ instance.fire(); instance._delayTime = new Date - time; },obj.fn); break; }else{ this._result = obj.fn.apply(instance,obj.args) } } } C.prototype.wait = function(ms){ this._methodList.push({ fn:ms }); return this; } C.prototype.abort = function(){ createTimeout(this.timeoutID); this.fire(); } C.extend = function(name,body){ if(typeof name === "object"){ for(var i in name){ if(name[i] !== void 0){ C.extend(i, name[i]) } } }else{ if(typeof body === "function"){ var method = C.prototype[name] = function(){ var obj = { args:arguments, fn:body } this._methodList.push(obj); this.fire(); return this._result !== void 0 ? this : this; } method.toString = function(){ return body+""; } }else{ this.prototype[name] = body; } } return this; } C.extend({ aaa:33, attr:function(prop){ return this[prop]; }, getName:function(){ return this.name; }, setName:function(name){ this.name = name; } }); var c = new C; console.log(c); c.attr(aaa); c.setName("司徒正美").wait(1000).getName(); console.log(c.name); console.log(c.setName)
相关文章推荐
- 实例讲解javascript实现异步图片上传方法
- javascript带回调函数的异步脚本载入方法实例分析
- 使用Rhino让java执行javascript的方法实例
- JavaScript利用fetch实现异步请求的方法实例
- javaScript 自执行函数—保留异步方法调用的内部变量
- javascript带回调函数的异步脚本载入方法实例分析
- javascript中静态方法、实例方法、内部方法和原型的一点见解
- JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
- JavaScript中OnLoad几种使用方法,onload 后面执行的函数不能加括号 加了就立即执行。
- es6 javascript的map数据结构的实例的属性和操作方法、遍历方法
- 用ASP将JAVASCRIPT代码写入客户端执行的一种简易方法
- Javascript setInterval的两种调用方法(实例讲解)
- 对javascript基本对象的属性以及方法的实例介绍
- JavaScript字符串对象split方法入门实例(用于把字符串分割成数组)
- 实例讲解避免javascript冲突的方法
- javascript中如何延迟执行一个方法
- 关于JavaScript执行onload()方法和jquery$(function(){})区别
- JavaScript执行多个处理过程的方法
- JavaScript实现异步的4种方法
- 子页面执行父页面Javascript方法