javascript中定义私有方法说明(private method)


Posted in Javascript onJanuary 27, 2014

一度以为在javascript的世界里,所有方法都是公有的,无法真正从技术上定义一个私有方法,今天又一次发现:其实我错了!

var Person = function(name,sex){ 
    this.name = name; 
    this.sex = sex;      
    var _privateVariable = "";//私有变量     
    //构造器中定义的方法,即为私有方法 
    function privateMethod(){    
        _privateVariable = "private value"; 
        alert("私有方法被调用!私有成员值:" + _privateVariable);              
    } 
    privateMethod(); //构造器内部可以调用私有方法             
} Person.prototype.sayHello = function(){ 
    alert("姓名:" + this.name + ",性别:" + this.sex); 
} 
var p = new Person("菩提树下的杨过","男");       
p.sayHello(); 
//p.privateMethod();//这里将报错,私成方法无法被实例调用 
alert(p._privateVariable);//显示: undefined

说明:类的构造函数里定义的function,即为私有方法;而在构造函数里用var声明的变量,也相当于是私有变量。(不过类比于c#这类强类型语言中的私有成员概念还是有区别的,比如无法在非构造函数以外的其它方法中调用)

类似的,我们还能实现类似set,get属性的封装

var Person = function(){     
    var salary = 0.0;     this.setSalary = function(value){ 
        salary = value; 
    } 
    this.getSalary = function(){ 
        return salary; 
    } 
} 
var p = new Person(); 
p.setSalary(1000); 
alert(p.getSalary());//返回1000 
alert(p.salary);//返回undefined

注:js中的"变量作用域","函数调用上下文(this)","闭包","原型链"这几个概念确实值得花点工夫理解,这几道坎跨过去了,js新手(比如我辈之流)的水平相信也将小上一个新台阶.
Javascript 相关文章推荐
JavaScript中__proto__与prototype的关系深入理解
Dec 04 Javascript
Javascript基础教程之比较操作符
Jan 18 Javascript
JavaScript动态修改弹出窗口大小的方法
Apr 06 Javascript
flash+jQuery实现可关闭及重复播放的压顶广告
Apr 15 Javascript
每天一篇javascript学习小结(Date对象)
Nov 13 Javascript
JavaScript手风琴页面制作
May 17 Javascript
Vue.js鼠标悬浮更换图片功能
May 17 Javascript
Textarea输入字数限制实例(兼容iOS&安卓)
Jul 06 Javascript
vue-cli创建的项目,配置多页面的实现方法
Mar 15 Javascript
在vscode里使用.vue代码模板的方法
Apr 28 Javascript
js中apply()和call()的区别与用法实例分析
Aug 14 Javascript
13 个npm 快速开发技巧(推荐)
Jul 04 Javascript
用javascript替换URL中的参数值示例代码
Jan 27 #Javascript
jquery选择器之基本过滤选择器详解
Jan 27 #Javascript
jquery选择器之层级过滤选择器详解
Jan 27 #Javascript
jquery选择器之内容过滤选择器详解
Jan 27 #Javascript
jquery选择器之属性过滤选择器详解
Jan 27 #Javascript
jQuery自定义事件的简单实现代码
Jan 27 #Javascript
jQuery中bind与live的用法及区别小结
Jan 27 #Javascript
You might like
关于PHP session 存储方式的详细介绍
2013/06/25 PHP
PHP获取一个字符串中间一部分字符的方法
2014/08/19 PHP
jQuery获取节点和子节点文本的方法
2014/07/22 Javascript
Javascript基础知识(三)BOM,DOM总结
2014/09/29 Javascript
Javascript中的匿名函数与封装介绍
2015/03/15 Javascript
JavaScript使用Max函数返回两个数字中较大数的方法
2015/04/06 Javascript
JQuery创建DOM节点的方法
2015/06/11 Javascript
基于jQuery实现点击列表加载更多效果
2016/05/31 Javascript
JS判断是否在微信浏览器打开的简单实例(推荐)
2016/08/24 Javascript
BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页tabs、模态框、菜单定位)
2016/12/01 Javascript
使用vue-cli(vue脚手架)快速搭建项目的方法
2018/05/21 Javascript
vue实现表格合并功能
2020/12/01 Vue.js
[01:19]DOTA2城市挑战赛报名开始 开启你的城市传奇
2018/03/23 DOTA
Python中还原JavaScript的escape函数编码后字符串的方法
2014/08/22 Python
Python简单进程锁代码实例
2015/04/27 Python
python实现图像识别功能
2018/01/29 Python
详解Django中间件执行顺序
2018/07/16 Python
Python rstrip()方法实例详解
2018/11/11 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
2018/11/14 Python
解决Python3 被PHP程序调用执行返回乱码的问题
2019/02/16 Python
使用python画社交网络图实例代码
2019/07/10 Python
Django的CVB实例详解
2020/02/10 Python
Python 读取xml数据,cv2裁剪图片实例
2020/03/10 Python
python 下划线的不同用法
2020/10/24 Python
python爬虫 requests-html的使用
2020/11/30 Python
详解Python 中的 defaultdict 数据类型
2021/02/22 Python
python上下文管理的使用场景实例讲解
2021/03/03 Python
Hanky Panky官方网站:内衣和睡衣
2019/07/25 全球购物
雷蛇美国官网:Razer
2020/04/03 全球购物
大学生的四年学习自我评价
2013/12/13 职场文书
十八大报告观后感
2014/01/28 职场文书
绘画专业自荐信范文
2014/02/23 职场文书
居委会个人对照检查材料思想汇报
2014/09/29 职场文书
工程合作意向书范本
2015/05/09 职场文书
2016年春节慰问信息大全
2015/11/30 职场文书
Python开发五子棋小游戏
2022/05/02 Python