Javascript 面向对象(一)(共有方法,私有方法,特权方法)


Posted in Javascript onMay 23, 2012

私有方法:私有方法本身是可以访问类内部的所有属性的,即私有属性和公有属性。但是私有方法是不可以在类的外部被调用。

私有方法写法:

function myClass () { 
var private_attribute = initial_value; 
function private_method () { } 
var private_method2 = function () { } 
}

实例showpet()就是一个私有方法
var pet=function(){var temp=""
//私有变量只有在函数或者对象作用域范围内能访问 
function showpet(){ 

alert("123") 
} 
showpet();//私有方法可以在函数作用域范围内使用。 
} 
showpet();//会出错 
pet.showpet()//还是不能这样调用 
var Penguin=new pet() //实例化一个pet对象 
Penguin.showpet()//不好意思这样子还是不能让你调用。

公有方法:

1.公有方法是可以在类的外部被调用的,

2.但是它不可以访问类的私有属性。

3.公有方法必须在类的内部或者外部通过类的prototype属性添加。

公有方法写法:

function myClass () { 
this.public_attribute = initial_value; 
this.prototype.public_method = function () { } 
} 
myClass.prototype.public_attribute2 = initial_value; 
myClass.prototype.public_method2 = function () { }

实例:
var pet=function(){ 
function showname(){//私有方法 
alert(this.name) 
} 

this.show=function(){ //如果这里不理解,请注意这个方法下面就要介绍了。 

showname(); 

} 
} 
pet.prototype.setname=function(str){ 
name=str; 
} 
var Penguin=new pet() 

Penguin.setname("Penguin");//添加实例的name值为Penguin 

Penguin.show(); //弹出Penguin 

Penguin.setname("wind");//添加实例的name值为wind 

Penguin.show(); //弹出wind

特权方法:

1.特权方法是可以在类的外部被调用的,

2.但是它可以访问类的私有属性,并且也是可以访问类的公有属性,可以勉强的认为它是一种特殊的公有方法。

3.但是它与上面的公有方法的声明与定义方式不同。特权方法必须在类的内部声明定义。

特权方法写法:

function myClass () { 
this.privileged_method = function () { } 
}

实例
var pet=function(){ 
function showname(){//私有方法 
alert(this.name) 
} 
this.show=function(){//通过使用this关键字定义一个特权方法。 
showname(); //在特权方法中访问私有方法; 
} 
} 
pet.prototype.setname=function(str){ 
name=str; 
} 
var Penguin=new pet();//实例化一个pet对象 
Penguin.setname("Penguin");//调用公有方法修改 
Penguin.show(); //调用特权方法访问私有方法,弹出name

下面是我自己的一些理解:通过对上面这些的学习,结合我自己看的书。对于公有,私有,特权的理解如下:
公有方法:就是所有通过该类实例化出来的对象,共同都拥有或者说都可以使用的方法。一般把共用的方法,都放在“原型对象“当中,如果放在构造函数中,会重复创建共同的方法。

私有方法:不能在外部调用。
特权方法:利用的闭包原理,即通过作用域链,让内部函数能够访问外部函数的变量对象(即该类的私有变量、私有方法)。(作用域链,闭包,变量对象;这三个在《Javascript高级程序中有讲解》)

Javascript 相关文章推荐
JavaScript 数组循环引起的思考
Jan 01 Javascript
JQuery中html()方法使用不当带来的陷阱
Apr 07 Javascript
JavaScript执行效率与性能提升方案
Dec 21 Javascript
jQuery制作的别致导航有阴影背景高亮模式窗口
Apr 15 Javascript
使用AngularJS实现表单向导的方法
Jun 19 Javascript
在js代码拼接dom对象到页面上去的模板总结(必看)
Feb 14 Javascript
Bootstrap3 模态框使用实例
Feb 22 Javascript
JavaScript中清空数组的三种方式
Mar 22 Javascript
Vue动态实现评分效果
May 24 Javascript
vue+node+webpack环境搭建教程
Nov 05 Javascript
vue 修改 data 数据问题并实时显示的方法
Aug 27 Javascript
JavaScript面向对象中接口实现方法详解
Jul 24 Javascript
Javascript 闭包引起的IE内存泄露分析
May 23 #Javascript
基于jQuery的图片左右无缝滚动插件
May 23 #Javascript
判断多个input type=file是否有已经选择好文件的代码
May 23 #Javascript
jQuery 1.7.2中getAll方法的疑惑分析
May 23 #Javascript
各浏览器中querySelector和querySelectorAll的实现差异分析
May 23 #Javascript
jQuery-onload让第一次页面加载时图片是淡入方式显示
May 23 #Javascript
jquery.pagination.js 无刷新分页实现步骤分享
May 23 #Javascript
You might like
JQUERY CHECKBOX全选,取消全选,反选方法三
2008/08/30 Javascript
jquery文字上下滚动的实现方法
2013/03/22 Javascript
jQuery的attr与prop使用介绍
2013/10/10 Javascript
iframe中子父类窗口调用JS的方法及注意事项
2015/08/25 Javascript
详解JavaScript中的4种类型识别方法
2015/09/14 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
基于Jquery和html5的7款个性化地图插件
2015/11/17 Javascript
seajs学习教程之基础篇
2016/10/20 Javascript
JS获取本周周一,周末及获取任意时间的周一周末功能示例
2017/02/09 Javascript
ionic环境配置及问题详解
2017/06/27 Javascript
js模块加载方式浅析
2017/08/12 Javascript
vue2.0 如何在hash模式下实现微信分享
2019/01/22 Javascript
JavaScript解析机制与闭包原理实例详解
2019/03/08 Javascript
详解js动态获取浏览器或页面等容器的宽高
2019/03/13 Javascript
angular 表单验证器验证的同时限制输入的实现
2019/04/11 Javascript
解决Layui中layer报错的问题
2019/09/03 Javascript
Electron 调用命令行(cmd)
2019/09/23 Javascript
通过Python来使用七牛云存储的方法详解
2015/08/07 Python
利用Python实现微信找房机器人实例教程
2019/03/10 Python
在python里面运用多继承方法详解
2019/07/01 Python
python按键按住不放持续响应的实例代码
2019/07/17 Python
pytorch 预训练层的使用方法
2019/08/20 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
2020/06/12 Python
Python collections.defaultdict模块用法详解
2020/06/18 Python
html5移动端自适应布局的实现
2020/04/15 HTML / CSS
巴西最大的巴士票务门户:Quero Passagem
2020/11/21 全球购物
如何删除一个表里面的重复行
2013/07/13 面试题
进程的查看和调度分别使用什么命令
2013/12/14 面试题
小学三年级数学教学反思
2014/01/31 职场文书
手工社团活动方案
2014/02/17 职场文书
企业委托书范本
2014/09/13 职场文书
毕业实习证明(4篇)
2014/10/28 职场文书
会议欢迎词范文
2015/01/27 职场文书
2015年青年志愿者工作总结
2015/05/20 职场文书
Python答题卡识别并给出分数的实现代码
2021/06/22 Python
Spring Boot接口定义和全局异常统一处理
2022/04/20 Java/Android