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 相关文章推荐
获取Javscript执行函数名称的方法
Dec 22 Javascript
用JavaScript显示随机图像或引用
Apr 21 Javascript
JavaScript中for..in循环陷阱介绍
Nov 12 Javascript
wap浏览自动跳转到wap页面的js代码
May 17 Javascript
JavaScript里实用的原生API汇总
May 14 Javascript
基于javascript实现图片懒加载
Jan 05 Javascript
AugularJS从入门到实践(必看篇)
Jul 10 Javascript
VUE中v-on:click事件中获取当前dom元素的代码
Aug 22 Javascript
vue组件之间通信方式实例总结【8种方式】
Feb 22 Javascript
在项目vue中使用echarts的操作步骤
Sep 07 Javascript
vue中template的三种写法示例
Oct 21 Javascript
vue切换菜单取消未完成接口请求的案例
Nov 13 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
require(),include(),require_once()和include_once()的异同
2007/01/02 PHP
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
2013/05/10 PHP
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
2014/06/05 PHP
php根据用户语言跳转相应网页
2015/11/04 PHP
php 读取输出其他文件的实现方法
2016/07/26 PHP
阿里云PHP SMS短信服务验证码发送方法
2017/07/11 PHP
自写的jQuery异步加载数据添加事件
2014/05/15 Javascript
Javascript的&&和||的另类用法
2014/07/23 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
2015/12/13 Javascript
JQuery ztree 异步加载实例讲解
2016/02/25 Javascript
js canvas实现擦除动画
2016/07/16 Javascript
AngularJS修改model值时,显示内容不变的实例
2018/09/13 Javascript
js变量声明var使用与不使用的区别详解
2019/01/21 Javascript
JavaScript类型相关的常用操作总结
2019/02/14 Javascript
基于Vue插入视频的2种方法小结
2019/04/02 Javascript
axios+Vue实现上传文件显示进度功能
2019/04/14 Javascript
微信小程序 swiper 组件遇到的问题及解决方法
2019/05/26 Javascript
vue实现购物车的监听
2020/04/20 Javascript
JavaScript实现多文件下载方法解析
2020/08/07 Javascript
在Python中如何传递任意数量的实参的示例代码
2019/03/21 Python
Python实现查找字符串数组最长公共前缀示例
2019/03/27 Python
12个步骤教你理解Python装饰器
2019/07/01 Python
Flask配置Cors跨域的实现
2019/07/12 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
2020/06/05 Python
python 利用jieba.analyse进行 关键词提取
2020/12/17 Python
Python3利用openpyxl读写Excel文件的方法实例
2021/02/03 Python
HTML文本属性&颜色控制属性的实现
2019/12/17 HTML / CSS
Mankind美国/加拿大:英国领先的男士美容护发用品公司
2018/12/05 全球购物
Java中的基本数据类型所占存储空间大小固定的吗
2012/02/15 面试题
中医药大学毕业生自荐信
2013/11/08 职场文书
金融专业毕业生推荐信
2013/11/26 职场文书
金融专业大学生自我评价
2014/01/09 职场文书
办公室主任主任岗位责任制
2014/02/11 职场文书
公司拓展活动方案
2014/02/13 职场文书
《最可爱的人》教学反思
2014/02/14 职场文书
技术总监管理岗位职责
2014/03/09 职场文书