面向对象的JavaScript
来源:互联网 发布:南京浦口永宁网络问政 编辑:程序博客网 时间:2024/06/03 17:48
近期,在做学校内部的小项目中,觉得自己的水平并没有得到很大的提升以及看到自己本身的局限性。所以特去图书馆借了几本关于JavaScript的书继续深造,其中就有
《Pro JavaScript Development》
并希望通过借博客这个平台记录自己的成长过程,且希望能以此激励自己。
JavaScript中公有、私有以及受保护的属性和方法:
//我们将“类”的定义包在一个自我执行的函数里,这个函数返回我们所创建的“类”//并将其保存在一个变量中以便在后面的代码使用var accommodation = (function(){ //定义“类”的构造函数。因为处在一个新的函数内,我们也切换到了一个新的作用域中, //所以可以使用与保存函数返回值的那个变量相同的名字 function accommodation(){} var _isLocked = false, _isAlarmed = false, _alarmMessage = "Alarm activated!"; //仅在当前作用域中定义的函数(而未在构造函数的原型上定义)也都是“私有的” function _alarm(){ _isAlarmed = true; console.log(_alarmMessage); } function _disableAlarm(){ _isAlarmded = false; } //所有定义在原型上的方法都是“公有的”,当我们在此处创建的“类”在闭包结束处被返回后,就可以 //在当前作用域之外访问这些方法了 accommodation.prototype.lock = function(){ _isLocked = true; _alarm(); }; accommodation.prototype.unlock = function(){ _isLocked = false; _disableAlarm(); }; //定义个getter函数来对私有变量_isLocked的值进行只读访问——相当于把变量定义为了“受保护的” accommodation.prototype.getIsLocked = function(){ return _isLocked; }; //定义一个setter函数来对私有变量_alarmMessage进行只写访问——相当于将其定义为了“受保护的” accommodation.prototype.setAlarmMessage = function(message){ _alarmMessage = message; }; //返回在这个作用域中创建的“类”,使之在外层作用域中即后面代码的所有位置都可用。只有公有的 //属性和方法是可用的 return accommodation;}());//创建一个对象实例var house = new accommodation();house.lock();//输出警告消息“Alarm activated”try{ house._alarm();//}catch(error){ console.log(error + ":错误!_alarm函数从未被公开暴露,所以无法直接通过“类”的对象实例进行访问");}console.log(house.isLocked);//undefined(_isLocked是私有的。在闭包外部访问不到)house.getIsLocked();//truehouse.setAlarmMessage("The alarm is now activated!");house.lock();
1 0
- 面向对象的javascript
- javascript的面向对象
- JavaScript的面向对象
- 面向对象的JavaScript
- Javascript的面向对象
- 面向对象的JavaScript
- 面向对象的JavaScript
- 面向对象的JavaScript
- 面向对象的Javascript
- 面向对象的JavaScript
- javascript的面向对象
- 面向对象的JavaScript
- JavaScript的面向对象
- 面向对象的JavaScript
- 面向对象的JavaScript
- 面向对象的JavaScript
- javascript的面向对象
- 面向对象的Javascript
- Effective Java系列读后感(一)-创建和销毁对象
- POJ 1286-Necklace of Beads(Polya定理-旋转+翻转 串项链)
- 斐波那契数
- Vertical Histogram POJ
- poj 2186 Popular Cows
- 面向对象的JavaScript
- Python高级特性
- IDOC重发处理
- 一个注解引发的话题
- 由请求资源路径错误和火狐浏览器的网络请求显示自动过滤引发的debug血案
- Minimum Time Difference
- Java 自旋锁
- 1880: Join the Conversation
- 小白试验田(1)