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 异步调用框架 (Part 2 - 用例设计)
Aug 03 Javascript
jQuery第三课 修改元素属性及内容的代码
Mar 14 Javascript
浅析Node.js中的内存泄漏问题
Jun 23 Javascript
浅谈JavaScript中setInterval和setTimeout的使用问题
Aug 01 Javascript
JavaScript数组去重的五种方法
Nov 05 Javascript
微信小程序使用第三方库Underscore.js步骤详解
Sep 27 Javascript
简单谈谈JS数组中的indexOf方法
Oct 13 Javascript
JS+HTML5实现图片在线预览功能
Jul 22 Javascript
js移动端事件基础及常用事件库详解
Aug 15 Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
Oct 10 Javascript
解决js相同的正则多次调用test()返回的值却不同的问题
Oct 10 Javascript
js实现查询商品案例
Jul 22 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技巧与注意事项分析
2011/02/03 PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
2014/11/11 PHP
php简单smarty入门程序实例
2015/06/11 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
2019/04/09 PHP
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
jquery中通过父级查找进行定位示例
2013/06/28 Javascript
函数式 JavaScript(一)简介
2014/07/07 Javascript
详解Bootstrap创建表单的三种格式(一)
2016/01/04 Javascript
解决JS组件bootstrap table分页实现过程中遇到的问题
2016/04/21 Javascript
浅析Javascript ES6新增值比较函数Object.is
2016/08/24 Javascript
AngularJs Managing Service Dependencies详解
2016/09/02 Javascript
JavaScript重定向URL参数的两种方法小结
2016/10/19 Javascript
老生常谈jquery id选择器和class选择器的区别
2017/02/12 Javascript
vue系列之requireJs中引入vue-router的方法
2018/07/18 Javascript
vue中使用sessionStorage记住密码功能
2018/07/24 Javascript
JavaScript实现移动端弹窗后禁止滚动
2020/05/25 Javascript
[53:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第一场 1月31日
2021/03/11 DOTA
python基于mysql实现的简单队列以及跨进程锁实例详解
2014/07/07 Python
python基于windows平台锁定键盘输入的方法
2015/03/05 Python
python使用append合并两个数组的方法
2015/04/28 Python
Python连接MySQL并使用fetchall()方法过滤特殊字符
2016/03/13 Python
flask使用session保存登录状态及拦截未登录请求代码
2018/01/19 Python
Python tkinter的grid布局及Text动态显示方法
2018/10/11 Python
在python中实现对list求和及求积
2018/11/14 Python
Python图像处理库PIL的ImageFont模块使用介绍
2020/02/26 Python
python3将变量输入的简单实例
2020/08/19 Python
使用HTML5和CSS3表单验证功能
2017/05/05 HTML / CSS
金属材料工程个人求职的自我评价
2013/12/04 职场文书
中专生自我鉴定书范文
2013/12/28 职场文书
小学生评语集锦
2014/04/18 职场文书
低碳环保口号
2014/06/12 职场文书
关于观后感的作文
2015/06/18 职场文书
《牧场之国》教学反思
2016/02/22 职场文书
技术入股协议书
2016/03/22 职场文书
强烈推荐:小学生:暑假作息时间表(值得收藏)
2019/07/09 职场文书
SqlServer数据库远程连接案例教程
2021/07/15 SQL Server