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 相关文章推荐
jQuery技巧大放送 学习jquery的朋友可以看下
Oct 14 Javascript
WEB页子窗口(showModalDialog和showModelessDialog)使用说明
Oct 25 Javascript
Jquery 最近浏览过的商品的功能实现代码
May 14 Javascript
JQuery防止退格键网页后退的实现代码
Mar 23 Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
Oct 15 Javascript
js基于setTimeout与setInterval实现多线程
Jun 17 Javascript
jQuery用noConflict代替$的实现方法
Apr 12 jQuery
彻底搞懂JavaScript中的apply和call方法(必看)
Sep 18 Javascript
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
Jan 11 Javascript
js中DOM事件绑定分析
Mar 18 Javascript
浅谈React Native 传参的几种方式(小结)
May 21 Javascript
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
May 27 jQuery
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
防止本地用户用fsockopen DDOS攻击对策
2011/11/02 PHP
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
2012/06/07 PHP
php开发微信支付获取用户地址
2015/10/04 PHP
php解决和避免form表单重复提交的几种方法
2016/08/31 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
JavaScript高级程序设计 读书笔记之八 Function类及闭包
2012/02/27 Javascript
javascript里模拟sleep(两种实现方式)
2013/01/25 Javascript
JavaScript获取和设置CheckBox状态的简单方法
2013/07/05 Javascript
JavaScript将相对地址转换为绝对地址示例代码
2013/07/19 Javascript
Js冒泡事件详解及阻止示例
2014/03/21 Javascript
js中的事件捕捉模型与冒泡模型实例分析
2015/01/10 Javascript
js实现每日自动换一张图片的方法
2015/05/04 Javascript
jQuery实现在最后一个元素之前插入新元素的方法
2015/07/18 Javascript
JS+CSS实现美化的下拉列表框效果
2015/08/11 Javascript
Bootstrap基本插件学习笔记之模态对话框(16)
2016/12/08 Javascript
详解Vue-cli 创建的项目如何跨域请求
2017/05/18 Javascript
JS点击缩略图整屏居中放大图片效果
2017/07/04 Javascript
jquery版轮播图效果和extend扩展
2017/07/18 jQuery
react-native-fs实现文件下载、文本存储的示例代码
2017/09/22 Javascript
angularjs实现时间轴效果的示例代码
2017/11/29 Javascript
vue 实现 rem 布局或vw 布局的方法
2019/11/13 Javascript
JavaScript禁止右击保存图片,禁止拖拽图片的实现代码
2020/04/28 Javascript
js轮播图之旋转木马效果
2020/10/13 Javascript
Python使用剪切板的方法
2017/06/06 Python
python模拟事件触发机制详解
2018/01/19 Python
Python判断变量名是否合法的方法示例
2019/01/28 Python
Python实现爬取马云的微博功能示例
2019/02/16 Python
tensorflow模型转ncnn的操作方式
2020/05/25 Python
Python函数必须先定义,后调用说明(函数调用函数例外)
2020/06/02 Python
python利用paramiko实现交换机巡检的示例
2020/09/22 Python
数据库面试要点基本概念
2013/10/31 面试题
农民工工资支付承诺函
2014/03/31 职场文书
认购协议书范本
2014/04/22 职场文书
三年级上册科学教学计划
2015/01/21 职场文书
公司人力资源管理制度
2015/08/05 职场文书
2016年端午节寄语
2015/12/04 职场文书