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 相关文章推荐
学习ExtJS border布局
Oct 08 Javascript
跨浏览器开发经验总结(四) 怎么写入剪贴板
May 13 Javascript
JQuery的ajax获取数据后的处理总结(html,xml,json)
Jul 14 Javascript
document.getElementById获取控件对象为空的解决方法
Nov 20 Javascript
javascript面向对象之this关键词用法分析
Jan 13 Javascript
jquery div模态窗口的简单实例
May 28 Javascript
JavaScript实现256色转灰度图
Feb 22 Javascript
vue 利用路由守卫判断是否登录的方法
Sep 29 Javascript
15个顶级开源JavaScript框架和库
Oct 10 Javascript
微信公众号H5支付接口调用方法
Jan 10 Javascript
vue+vant实现商品列表批量倒计时功能
Jan 13 Javascript
浅谈vue 组件中的setInterval方法和window的不同
Jul 30 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
php cookie的操作实现代码(登录)
2010/12/29 PHP
eaglephp使用微信api接口开发微信框架
2014/01/09 PHP
php顺序查找和二分查找示例
2014/03/27 PHP
php 字符串中的\n换行符无效、不能换行的解决方法
2014/04/02 PHP
无需数据库在线投票调查php代码
2016/07/20 PHP
CodeIgniter框架验证码类库文件与用法示例
2017/03/18 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
2020/02/15 PHP
初学JavaScript第二章
2008/09/30 Javascript
extjs 学习笔记 四 带分页的grid
2009/10/20 Javascript
用Jquery实现可编辑表格并用AJAX提交到服务器修改数据
2009/12/27 Javascript
jquery 操作日期、星期、元素的追加的实现代码
2012/02/07 Javascript
javascript中的绑定与解绑函数应用示例
2013/06/24 Javascript
JS和JQ的event对象区别分析
2014/11/24 Javascript
JavaScript基于自定义函数判断变量类型的实现方法
2016/11/23 Javascript
canvas实现绘制吃豆鱼效果
2017/01/12 Javascript
jquery对table做排序操作的实例演示
2017/08/10 jQuery
JavaScript实现的反序列化json字符串操作示例
2018/07/18 Javascript
vuejs router history 配置到iis的方法
2018/09/20 Javascript
微信小程序pinker组件使用实现自动相减日期
2020/05/07 Javascript
[01:02:00]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第三场 1月24日
2021/03/11 DOTA
pycharm 使用心得(四)显示行号
2014/06/05 Python
python实现读取并显示图片的两种方法
2017/01/13 Python
Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作
2018/04/20 Python
Python爬虫包BeautifulSoup实例(三)
2018/06/17 Python
python读写csv文件并增加行列的实例代码
2019/08/01 Python
Python3实现打印任意宽度的菱形代码
2020/04/12 Python
Python如何把十进制数转换成ip地址
2020/05/25 Python
python有几个版本
2020/06/17 Python
python logging 重复写日志问题解决办法详解
2020/08/04 Python
高中毕业生的个人自我评价
2014/02/21 职场文书
销售人才自我评价范文
2014/09/27 职场文书
安全生产标语大全
2014/10/06 职场文书
教师党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
2014年共青团工作总结
2014/12/10 职场文书
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/07 其他游戏
一文教你快速生成MySQL数据库关系图
2022/06/28 Redis