JavaScript 对象成员的可见性说明


Posted in Javascript onOctober 16, 2009

JavaScript对象构造的可见性定义可以分为以下几种:
  1,私有属性(private properties)


通过var关键字定义对象构造中变量的作用域,该变量只能在对象构造方法的作用域内被访问。如:

function VariableTest() 
{ 
var myVariable;//private 
} 
var vt = new VariableTest(); 
vt.myVariable;//这里会出现undefined异常

2,私有方法(private methods)

与私有属性类似,只能在对象构造方法作用域内被访问。如:

function MethodTest() 
{ 
var myMethod = function()//private 
{ 
alert("private method"); 
} 
this.invoke = function() 
{ 
//能够访问到myMethod 
myMehtod(); 
} 
} 
var mt = new MethodTest(); 
mt.myMethod();//错误。使用trycatch的话,可捕获“对象不支持此属性或方法”异常 
mt.invoke();

3,公共属性(public properties)


有两种定义公共属性的途径:

(1)通过this关键字来定义。如:

function PrivilegedVariable() 
{ 
this.variable = "privileged variable"; 
} 
var pv = new PrivilegedVariable(); 
pv.variable;//返回 "privileged variable"

(2)通过构造方法的原型来定义。如:

function PublicVariable(){} 
PublicVariable.prototype.variable = "public variable"; 
var pv = new PublicVariable(); 
pv.variable;//返回"public variable"

4,公共方法(public methods)

同理,有两种定义公共方法的途径。


(1)通过this关键字来定义。(2)通过构造方法的原型来定义。

这里省略。。。。。。。。。。。

5,静态属性(static properties)

直接为对象构造方法添加的属性,不能被对象实例访问,只能供构造方法自身使用。如:

function StaticVariable(){} 
StaticVariable.variable = "static variable"; 
var sv = new StaticVariable(); 
sv.variable;//返回"undefined" 
StaticVariable.prototype.variable;//返回"undefined" 
StaticVariable.variable;//返回"static variable"

6,静态方法(static methods)


直接为对象构造方法添加的方法,不能被对象实例访问,只能供构造方法自身使用。

代码省略。。。。。。。。

Javascript 相关文章推荐
javascript的事件触发器介绍的实现
Jun 05 Javascript
JavaScript 开发工具webstrom使用指南
Dec 09 Javascript
嵌入式iframe子页面与父页面js通信的方法
Jan 20 Javascript
JS组件Form表单验证神器BootstrapValidator
Jan 26 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(三)
Sep 14 Javascript
详解Js模板引擎(TrimPath)
Nov 22 Javascript
纯JS实现可用于页码更换的飞页特效示例
May 21 Javascript
《javascript少儿编程》location术语总结
May 27 Javascript
JS通过位运算实现权限加解密
Aug 14 Javascript
Vue源码之关于vm.$delete()/Vue.use()内部原理详解
May 01 Javascript
微信小程序云开发之云函数详解
May 16 Javascript
node.js 微信开发之定时获取access_token
Feb 07 Javascript
Javascript 圆角div的实现代码
Oct 15 #Javascript
IE Firefox 使用自定义标签的区别
Oct 15 #Javascript
JavaScript 基础知识 被自己遗忘的
Oct 15 #Javascript
javascript 操作cookies及正确使用cookies的属性
Oct 15 #Javascript
extjs 学习笔记(三) 最基本的grid
Oct 15 #Javascript
JavaScript Array扩展实现代码
Oct 14 #Javascript
JavaScript 动态创建VML的方法
Oct 14 #Javascript
You might like
德生H-501的评价与改造
2021/03/02 无线电
php中用于检测一个地理IP地址是否可用的代码
2012/02/19 PHP
PHP中echo,print_r与var_dump区别分析
2014/09/29 PHP
php基于双向循环队列实现历史记录的前进后退等功能
2015/08/08 PHP
php实现在站点里面添加邮件发送的功能
2020/04/28 PHP
window.parent调用父框架时 ie跟火狐不兼容问题
2009/07/30 Javascript
JS实现跟随鼠标闪烁转动色块的方法
2015/02/26 Javascript
JS网页在线获取鼠标坐标值的方法
2015/02/28 Javascript
jquery制作多功能轮播图插件
2015/04/02 Javascript
jQuery原生的动画效果
2015/07/10 Javascript
noty ? jQuery通知插件全面解析
2016/05/18 Javascript
jQuery回到顶部的代码
2016/07/09 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
2016/09/19 Javascript
jQuery+PHP+Mysql实现抽奖程序
2020/04/12 jQuery
Angular ng-animate和ng-cookies用法详解
2018/04/18 Javascript
vue实现点击选中,其他的不选中方法
2018/09/05 Javascript
解决vue axios的封装 请求状态的错误提示问题
2018/09/25 Javascript
基于JavaScript实现一个简单的Vue
2018/09/26 Javascript
微信小程序自定义弹窗wcPop插件
2018/11/19 Javascript
JavaScript中的相等操作符使用详解
2019/12/21 Javascript
vue实现的多页面项目如何优化打包的步骤详解
2020/07/19 Javascript
python应用程序在windows下不出现cmd窗口的办法
2014/05/29 Python
Python中输出ASCII大文字、艺术字、字符字小技巧
2015/04/28 Python
十条建议帮你提高Python编程效率
2016/02/16 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
如何使用pyinstaller打包32位的exe程序
2019/05/26 Python
浅析Python与Mongodb数据库之间的操作方法
2019/07/01 Python
python实现每天自动签到领积分的示例代码
2020/08/18 Python
Python 串口通信的实现
2020/09/29 Python
琳达·法罗眼镜英国官网:Linda Farrow英国
2021/01/19 全球购物
如何进行有效的自我评价
2013/09/27 职场文书
十佳美德少年事迹材料
2014/02/05 职场文书
珍惜时间演讲稿
2014/05/14 职场文书
浅谈Python numpy创建空数组的问题
2021/05/25 Python
MYSQL常用函数介绍
2022/05/05 MySQL
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python