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玩转游戏物理(一)运动学模拟与粒子系统
Jun 19 Javascript
jquery focus(fn),blur(fn)方法实例代码
Dec 16 Javascript
HTML5之lang属性与dir属性的详解
Jun 19 Javascript
ie与ff下的event事件使用介绍
Nov 25 Javascript
jQuery html()方法使用不了无法显示内容的问题
Aug 06 Javascript
Node.js测试中的Mock文件系统详解
Nov 21 Javascript
vue2.0开发实践总结之疑难篇
Dec 07 Javascript
JavaScript数据结构学习之数组、栈与队列
May 02 Javascript
在vue中使用SockJS实现webSocket通信的过程
Aug 29 Javascript
详解es6新增数组方法简便了哪些操作
May 09 Javascript
微信小程序3种位置API的使用方法详解
Aug 05 Javascript
JS实现滑动拼图验证功能完整示例
Mar 29 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
PHP编程入门的基本语法知识点总结
2016/01/26 PHP
jQuery html()等方法介绍
2009/11/18 Javascript
JavaScript QueryString解析类代码
2010/01/17 Javascript
javascript时间函数基础介绍
2013/03/28 Javascript
固定背景实现的背景滚动特效示例分享
2013/05/19 Javascript
使用jQuery重置(reset)表单的方法
2014/05/05 Javascript
jQuery对象和DOM对象之间相互转换的方法介绍
2015/02/28 Javascript
纯js实现瀑布流布局及ajax动态新增数据
2016/04/07 Javascript
AngularJS 模块详解及简单实例
2016/07/28 Javascript
javascript设计模式之策略模式学习笔记
2017/02/15 Javascript
详解node如何让一个端口同时支持https与http
2017/07/04 Javascript
js实现本地时间同步功能
2017/08/26 Javascript
JavaScript正则表达式和级联效果
2017/09/14 Javascript
js实现前面自动补全位数的方法
2018/10/10 Javascript
JavaScript实现简单轮播图效果
2018/12/01 Javascript
JavaScript 双向链表操作实例分析【创建、增加、查找、删除等】
2020/04/28 Javascript
JavaScript如何操作css
2020/10/24 Javascript
Python编程之字符串模板(Template)用法实例分析
2017/07/22 Python
解决Python 命令行执行脚本时,提示导入的包找不到的问题
2019/01/19 Python
Python多线程threading模块用法实例分析
2019/05/22 Python
python字符串中匹配数字的正则表达式
2019/07/03 Python
Python Socketserver实现FTP文件上传下载代码实例
2020/03/27 Python
Jupyter notebook 启动闪退问题的解决
2020/04/13 Python
Python轻量级web框架bottle使用方法解析
2020/06/13 Python
10分钟理解CSS3 FlexBox弹性布局
2018/12/20 HTML / CSS
世界上最大的售后摩托车零配件超市:J&P Cycles
2017/12/08 全球购物
法警的竞聘演讲稿
2014/01/02 职场文书
2014年商场超市庆元旦活动方案
2014/02/14 职场文书
寄语是什么意思
2014/04/10 职场文书
初中英语课后反思
2014/04/25 职场文书
学校文明单位申报材料
2014/05/06 职场文书
高中学生自我评价范文
2014/09/23 职场文书
群众路线批评与自我批评发言稿
2014/10/16 职场文书
Python基础详解之邮件处理
2021/04/28 Python
解决SpringBoot跨域的三种方式
2021/06/26 Java/Android
SqlServer数据库远程连接案例教程
2021/07/15 SQL Server