码迷,mamicode.com
首页 > Web开发 > 详细

js设计模式=封装

时间:2020-03-02 00:32:54      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:on()   lse   check   this   功能   name   完整   私有变量   span   

js封装案例【1】

<script>
var Book = function(num){
    var num;//类私有变量
    var name;//类私有变量
    function check(){};//类私有方法
    this.checkName = function(){}//特权方法
}
Book.prototype.checkNum=10;//公共属性
Book.prototype.display=function(){//公共方法
    console.log("this is display");
}
Book.isChinese=true;//类似静态功能属性
Book.checkInfo=function(){}//类似静态功能方法

var b1 = new Book();
b1.display();
</script>

 js使用闭包完成封装【2】

<script>
var Book =(function(){
    //静态私有变量
    var bookNum=0;
    //静态私有方法
    function checkBook(name){
        console.log(name);
    }
    //使用了闭包
    return function(newId,newName,newPrice){
        //私有变量
        var name,price;
        //私有方法
        function checkId(){
            console.log(bookNum);
        }
        //特权方法=和外面交互
        this.getName = function(){
            console.log(this.name);
        }
        this.getPrice= function(){
            console.log(this.price);
        }
        this.setPrice= function(newPrice){
            this.price = newPrice;
        }
        this.setName = function(newName){
            this.name = newName;
        }
        this.copy = function(){}
        this.setName(newName);
        this.setPrice(newPrice);
        bookNum++;
        checkId();
        checkBook(newName);
    }
})();
//静态属性和方法
Book.prototype={
    isjsBook:false,
    display:function(){}
};

var book = new Book(1,jsBook,30);
book.getName();
book.getPrice();
</script>

  js使用闭包完成封装【3】

<script>
 var Book = (function(){
     //静态私有变量
     var bookNum=0;
     //静态私有方法
     function checkBook(name){}
     function book (newId,newName,newPrice){
         //私有变量
         var book,price;
         //私有方法
         function checkId(){}
         //特权方法&属性
         this.getName = function(){}
         this.getPrice = function(){}
         this.setName = function(){}
         this.setPrice = function(){}
         this.copy=function(){}
         //构造方法和属性
         this.id = newId;
         this.setName(newName);
         this.setPrice(newPrice);
     }
     //构造原型
     book.prototype={
         isJSBook:true,
         display:function(){console.log()}
     };
     return book;
 })();
 var book = new Book(1,jsbook,20);
 book.display();
 //备注这样看来是一个完整的整体
</script>

 

js设计模式=封装

标签:on()   lse   check   this   功能   name   完整   私有变量   span   

原文地址:https://www.cnblogs.com/zh718594493/p/12392941.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!