JQ中promise设计之精妙
标签:
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());
注释掉的会报错
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦