JS特权方法定义作用以及与公有方法的区别


Posted in Javascript onMarch 18, 2013

定义特权方法
在构造函数内部通过this关键字定义的的方法,可以被实例化的对象继承所调用。

var Student = function(name) { 
var _name = name; //私有属性 
//特权方法 
this.getName = function() { 
return _name; 
}; 
this.setName = function(name) { 
_name = name; 
}; 
}; 
var s1 = new Student('zhangsan'); 
s1.getName(); //zhangsan

特权方法的作用
特权方法能够在构造函数外面公开访问(仅限于实例化的对象),而且还能够访问私有成员和方法,因此用来做为对象或者构造函数的接口最合适不过了,通过特权方法我们可以控制公有方法对私有属性或方法的访问。 在JS框架的扩展中有很多应用。
特权方法与公有方法的区别
相同点:1. 都可以在构造函数外部公开访问。2. 都可以访问公有属性
不同点:有2点
1. 每个实例都要拥有一份特权方法的副本(除在单例中使用外,需要考虑内存),而公有方法为所有实例共享
//创建Student对象实例 
var s1 = new Student('zhangsan'); 
var s2 = new Student('lisi'); 
//两实例的特权方法的引用不相同, 说明在对象实例化的时特权方法被重新创建 
console.log(s1.getName === s2.getName); //false

2. 特权方法可以访问私有属性和方法,而公有方法不能。
//为Student创建公有方法 
//公有方法不能访问私有属性 
Student.prototype.myMethod = function() { 
console.log(_name); //ReferenceError: _name is not defined 
}; 
s1.myMethod();

小结:特权方法作为构造函数的接口,公有方法可以通过特权方法访问私有属性和方法
Javascript 相关文章推荐
如何让easyui gridview 宽度自适应窗口改变及fitColumns应用
Jan 25 Javascript
jquery二级导航内容均分的原理及实现
Aug 13 Javascript
window.onerror()的用法与实例分析
Jan 27 Javascript
全面了解javascript中的错误处理机制
Jul 18 Javascript
mui上拉加载功能实例详解
Apr 13 Javascript
JavaScript实现的搜索及高亮显示功能示例
Aug 14 Javascript
JS实现获取进今年第几天是周几的方法分析
Jun 27 Javascript
vue中接口域名配置为全局变量的实现方法
Sep 20 Javascript
详解ES6 Fetch API HTTP请求实用指南
Nov 14 Javascript
小程序怎样让wx.navigateBack更好用的方法实现
Nov 01 Javascript
JavaScript实现HSL拾色器
May 21 Javascript
微信小程序开发数据缓存基础知识辨析及运用实例详解
Nov 06 Javascript
Javascript判断对象是否相等实现代码
Mar 18 #Javascript
jQuery+css实现图片滚动效果(附源码)
Mar 18 #Javascript
jquery获取特定name所有选中的checkbox,支持IE9标准模式
Mar 18 #Javascript
javascript定时变换图片实例代码
Mar 17 #Javascript
JS前端框架关于重构的失败经验分享
Mar 17 #Javascript
利用jQuery的deferred对象实现异步按顺序加载JS文件
Mar 17 #Javascript
提交表单时执行func方法实现代码
Mar 17 #Javascript
You might like
php面向对象全攻略 (九)访问类型
2009/09/30 PHP
php下网站防IP攻击代码,超级实用
2010/10/24 PHP
php+mysql不用递归实现的无限级分类实例(非递归)
2014/07/08 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
2014/07/30 PHP
文本框input聚焦失焦样式实现代码
2012/10/12 Javascript
js 为label标签和div标签赋值的方法
2013/08/08 Javascript
js加密解密字符串可自定义密码因子
2014/05/13 Javascript
深入分析JQuery和JavaScript的异同
2014/10/23 Javascript
javascript编程异常处理实例小结
2015/11/30 Javascript
Vue项目中设置背景图片方法
2018/02/21 Javascript
Vue 让元素抖动/摆动起来的实现代码
2018/05/31 Javascript
Vue 中如何正确引入第三方模块的方法步骤
2019/05/05 Javascript
解决vue单页面应用中动态修改title问题
2019/06/09 Javascript
node.js使用net模块创建服务器和客户端示例【基于TCP协议】
2020/02/14 Javascript
JavaScript实现随机点名程序
2020/03/25 Javascript
解决antd 下拉框 input [defaultValue] 的值的问题
2020/10/31 Javascript
[01:25]2014DOTA2国际邀请赛 zhou分析LGD比赛情况
2014/07/14 DOTA
编写Python脚本来获取mp3文件tag信息的教程
2015/05/04 Python
Python发送以整个文件夹的内容为附件的邮件的教程
2015/05/06 Python
Python基于pygame实现的font游戏字体(附源码)
2015/11/11 Python
python读取图片并修改格式与大小的方法
2018/07/24 Python
python实现n个数中选出m个数的方法
2018/11/13 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
2020/12/16 Python
简单介绍HTML5中audio标签的使用
2015/09/24 HTML / CSS
详解HTML5 Canvas标签及基本使用
2020/01/10 HTML / CSS
linux面试题参考答案(4)
2014/09/21 面试题
档案检查欢迎词
2014/01/13 职场文书
银行工作检查书范文
2014/01/31 职场文书
乡下人家教学反思
2014/02/01 职场文书
招商引资工作汇报材料
2014/10/28 职场文书
在校证明模板
2015/06/17 职场文书
2019财务管理制度最新范本!
2019/07/09 职场文书
Python开发工具Pycharm的安装以及使用步骤总结
2021/06/24 Python
Mysql实现简易版搜索引擎的示例代码
2021/08/30 MySQL
HTML实现仿Windows桌面主题特效的实现
2022/06/28 HTML / CSS
Nginx跨域问题解析与解决
2022/08/05 Servers