首页 > 其他分享 >js设计模式=封装

js设计模式=封装

时间:2022-11-22 11:02:03浏览次数:51  
标签:function 封装 私有 js newName Book var 设计模式 book

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>

 

标签:function,封装,私有,js,newName,Book,var,设计模式,book
From: https://blog.51cto.com/u_11635800/5877061

相关文章

  • JSON
    概念键值对一般形式<pid="jname"></p>varx={"name":"value"};//其中key是namedocument.getElementById("jname").innerHTML=x.name;数组varx={......
  • Java设计模式 - 24种
    设计模式的七大原则   开闭原则:对扩展开放、对修改关闭。   单一指责原则:一个类只做一件事。   依赖倒转原则:类似于ioc,采用接口编程。   迪米特原则:高内聚......
  • uniapp打包热更新wgt安装包中manifest.json中的vision版本不匹配
    app热更新后小米手机清除全部数据,然后重启app,app重新执行热更新这是后就会提示WGT安装包中manifest.json文件的version版本不匹配,查看plus.runtime.version果然变成......
  • js逆向
    内存漫游唐志远/ast-hook-for-js-RE(gitee.com)  hook.search("")  取值  原github  JSREI/ast-hook-for-js-RE:浏览器内存漫游解决方案(探索中...)(github.......
  • vue3 封装axios
    1添加一个新的http.js文件封装axios 引入axios //引入Axiosimportaxiosfrom'axios'定义一个根地址//视你自己的接口地址而定varroot2='http://121.4.6......
  • js 中 forEach 如何跳出循环?
    //1.for方法跳出循环functiongetItemByIdFor(arr,id){varitem=null;for(vari=0;i<arr.length;i++){console.log("for循环i",i);......
  • Note.js框架中的cluster集群和断言测试的实战剖析
    Cluster节点。Js在单个线程中运行单个实例。为了使用当前的多核系统,用户(开发人员)有时会使用一个Node字符串。js进程来处理加载任务。集群模块允许轻松创建共享服务器端口......
  • node.js安装及环境配置超详细教程【Windows系统安装包方式】
    文章目录Step1:下载安装包Step2:安装程序Step3:查看Step4:环境配置最后补充:Step1:下载安装包https://nodejs.org/zh-cn/download/根据自己电脑系统及位数选择,我的电......
  • MDH 前端周刊第 77 期:布局动画、Arrow JS、vanilla-extract、antd 5、dumi 2
    MDH前端周刊第77期:布局动画、ArrowJS、vanilla-extract、antd5、dumi2原创 云谦 云谦和他的朋友们 2022-11-2109:25 发表于浙江收录于合集#MDH:前端周刊81个......
  • jstat查看jvm的GC情况[转]
    jps(JavaVirtualMachineProcessStatusTool)是JDK1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情......