ITPub博客

首页 > IT职业 > IT职场 > JQ中promise设计之精妙

JQ中promise设计之精妙

IT职场 作者:huntwu 时间:2021-09-09 08:57:11 0 删除 编辑

假设我们有一个方法对象有两个属性方法如下;

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());

注释掉的会报错

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2387/viewspace-2798095/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-15

  • 博文量
    94
  • 访问量
    737