javascript 让实例的方法都异步执行
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)
机器瞎学/数据掩埋/模式混淆/人工智障/深度遗忘/神经掉线/计算机幻觉/专注单身二十五年