JQ中promise設(shè)計(jì)之精妙
標(biāo)簽:
JavaScript
假设我们有一个方法对象有两个属性方法如下;
function test(name){
var name=name;
var re={};
re.getName=function(){return name;};
re.setName=function(newName){name=newName;return this};
return re;
}
alert(test("张三").setName("王五").getName());
如果这时我们需要权限设置,对外只开放getName方法,不开放setName方法,就可以借鉴JQ的promise实现
function test(name,flag){
var name=name;
var re={};
var promise={
getName:function(){return name;},
promise:function(obj){
return obj!=null?$.extend(obj,promise):promise;
}
};
re.setName=function(newName){
name=newName;
return this;
};
promise.promise(re);
return flag?re:re.promise();
}
console.log(test("wwb").getName());
// console.log(test("wwb").setName("aaa").getName());
console.log(test("wwb",true).getName());
console.log(test("wwb",true).setName("aaa").getName());
注释掉的会报错
點(diǎn)擊查看更多內(nèi)容
為 TA 點(diǎn)贊
評(píng)論
評(píng)論
共同學(xué)習(xí),寫(xiě)下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦