javascript高级程序设计笔记5-封装
来源:互联网 发布:矩阵的几求法 编辑:程序博客网 时间:2024/06/07 08:21
javascript没有封装的概念,需要自己实现
1.实现块级作用域
在javascript中没有块级作用域的概念,通过匿名函数可以自己构造块级作用域
for(var j = 0;j < 10;j++){ console.log("loop j:"+j);}console.log("out j:"+j); //在外部任然可以访问到j(function(){ for(var i = 0;i < 10;i++){ console.log("loop i:"+i); }})()console.log(i) //这里会报错
2.封装
javascript本身没有私有变量的概念,可以通过以下几种方式实现属性的封装
1.通过特权方法
通过闭包的形式来实现封装,缺点是只能使用构造函数模式,特权函数无法添加到prototype中,每构建一个实例都会创建一个新的方法function Person(name,age){ this.getName = function(){ return name; } this.setName = function(value){ name = value; } this.getAge = function(){ return age; } this.setAge = function(value){ age = value; }}var person = new Person("feng",19)console.log(person.getName());
2.通过私有变量
此中方法是利用函数中创建的变量为函数私有和在函数中声明变量时如果没有var
关键字,声明的变量为全局变量(函数同理)(function(){ //创建一个私有作用域 var nameValue = null; var ageValue = null; Person = function(name,age){ nameValue = name; ageValue = age; } Person.prototype.sayName = function(){ console.log(nameValue); }})()var person = new Person("feng",19);person.sayName();
3.模块模式
这种模式用于创建单一字面量实例,即直接通过var
构建一个实例var person = function(){ var name = "feng"; var age = 19; return { getName:function(){ return name; }, getAge:function(){ return age; } }}()console.log(person.getName());
阅读全文
0 0
- javascript高级程序设计笔记5-封装
- 《JavaScript高级程序设计》笔记
- 《javascript 高级程序设计》笔记
- JavaScript高级程序设计笔记
- Javascript高级程序设计-笔记
- JavaScript高级程序设计笔记
- 《JavaScript 高级程序设计》笔记
- javaScript 高级程序设计 笔记
- javascript 高级程序设计 笔记
- JavaScript高级程序设计笔记(5)
- JavaScript高级程序设计学习笔记5
- javascript高级程序设计(4-5)章笔记
- javascript高级程序设计笔记(一)
- javascript高级程序设计笔记(二)
- javascript高级程序设计笔记(三)
- javascript高级程序设计笔记(四)
- javascript高级程序设计学习笔记
- JavaScript高级程序设计 学习笔记
- unittest框架实战(九)
- 基于层次化多模态LSTM的视觉语义联合嵌入
- 基于mvc模式的应用框架之Hibernate(三)
- Oracle创建表空间、用户、分配权限、导出、导入数据
- bzoj3039 玉蟾宫【单调栈】
- javascript高级程序设计笔记5-封装
- Apache Shiro去掉URL中的JSESSIONID
- 技巧丨PDF图片提取的方法
- 『干货』Go语言使用Docker Remote API ,举个栗子!
- 1.13 并发编程
- SpringMVC中RequestMapping用于类上时页面跳转路径不对 登录拦截失败
- [RK3128][Android 6.0] PWM backlight注册及调用流程
- JAVA 反射(3):类内部信息获取
- git 文件管理