JavaScript 对象的属性和方法4种不同的类型


Posted in Javascript onMarch 19, 2010

第一种类型就是前面所说的私有类型,它的特点是对外界完全不具备访问性,要访问它们,只有通过特定的getter和setter。
第二种类型是动态的公有类型,它的特点是外界可以访问,而且每个对象实例持有一个副本,它们之间不会相互影响。
第三种类型是静态的公有类型,或者通常叫做原型属性,它的特点是每个对象实例共享唯一副本,对它的改写会相互影响。
第四种类型是类属性,它的特点是作为类型的属性而不是对象实例的属性,在没有构造对象时也能够访问,下面通过例子说明这四种属性类型各自的特点和区别:
类型的四种属性

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
<title>Example 21.3</title> 
</head> 
<body> 
<h1 id="output"></h1> 
<script language="javascript" type="text/javascript"> 
<!-- 
function dwn(s) 
{ 
document.write(s + "<br/>"); 
} 
function myClass() 
{ 
var p = 100; //private property; 私有属性 
this.x = 10; //dynamic public property 动态公有属性 
} 
myClass.prototype.y = 20; //static public property or prototype property 原型属性 
myClass.z = 30; //static property //静态属性 
var a = new myClass(); 
dwn(a.p); //undefined 私有属性对象无法访问到 
dwn(a.x); //10 公有属性 
dwn(a.y); //20 公有属性 
a.x = 20; 
a.y = 40; 
dwn(a.x); //20 
dwn(a.y); //40 //动态公有属性y覆盖了原型属性y 
delete(a.x); 
delete(a.y); 
dwn(a.x); //undefined 动态公有属性x被删除后不存在 
dwn(a.y); //20 动态公有属性y被删除后还原为原型属性y 
dwn(a.z); //undefined 类属性无法通过对象访问 
dwn(myClass.z); //30 类属性应该通过类访问 
--> 
</script> 
</body> 
</html>
Javascript 相关文章推荐
js猜数字小游戏的简单实现代码
Jul 02 Javascript
JavaScript实现简单的数字倒计时
May 15 Javascript
究竟什么是Node.js?Node.js有什么好处?
May 29 Javascript
JS给Textarea文本框添加行号的方法
Aug 20 Javascript
jQuery实现悬浮在右上角的网页客服效果代码
Oct 24 Javascript
轻松搞定jQuery.noConflict()
Feb 15 Javascript
Bootstrap基本组件学习笔记之进度条(15)
Dec 08 Javascript
深入浅析Vue.js中 computed和methods不同机制
Mar 22 Javascript
vue底部加载更多的实例代码
Jun 29 Javascript
微信小程序中使用echarts的实现方法
Apr 24 Javascript
JavaScript变量作用域及内存问题实例分析
Jun 10 Javascript
javascript实现拖拽碰撞检测
Mar 12 Javascript
jQuery 前的按键判断代码
Mar 19 #Javascript
Javascript 匿名函数及其代码模式原理
Mar 19 #Javascript
JS 有名函数表达式全面解析
Mar 19 #Javascript
Jquery Ajax学习实例6 向WebService发出请求,返回DataSet(XML) 异步调用
Mar 18 #Javascript
JavaScript 高效运行代码分析
Mar 18 #Javascript
JS setCapture 区域外事件捕捉
Mar 18 #Javascript
小议Javascript中的this指针
Mar 18 #Javascript
You might like
5.PHP的其他功能
2006/10/09 PHP
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
2012/06/17 PHP
php不写闭合标签的好处
2014/03/04 PHP
PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】
2018/03/15 PHP
php workerman定时任务的实现代码
2018/12/23 PHP
php操作redis命令及代码实例大全
2020/11/19 PHP
纯js实现背景图片切换效果代码
2010/11/14 Javascript
Extjs中ComboBox加载并赋初值的实现方法
2012/03/22 Javascript
怎样在JavaScript里写一个swing把数据插入数据库
2012/12/10 Javascript
Jquery api 速查表分享
2015/01/12 Javascript
js实现分享到随页面滚动而滑动效果的方法
2015/04/10 Javascript
JavaScript汉诺塔问题解决方法
2015/04/21 Javascript
浅谈JSON.parse()和JSON.stringify()
2015/07/14 Javascript
详解JavaScript逻辑And运算符
2015/12/04 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
2016/01/26 Javascript
JS组件Bootstrap导航条使用方法详解
2016/04/29 Javascript
jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)
2016/05/27 Javascript
javascript中json对象json数组json字符串互转及取值方法
2017/04/19 Javascript
ES6中箭头函数的定义与调用方式详解
2017/06/02 Javascript
Vue 重置组件到初始状态的方法示例
2018/10/10 Javascript
关于Layui Table隐藏列问题
2019/09/16 Javascript
vue-resource post数据时碰到Django csrf问题的解决
2020/03/13 Javascript
vue 导航菜单刷新状态不消失,显示对应的路由界面操作
2020/08/06 Javascript
Python队列的定义与使用方法示例
2017/06/24 Python
Python中turtle作图示例
2017/11/15 Python
python的dataframe和matrix的互换方法
2018/04/11 Python
python pandas.DataFrame.loc函数使用详解
2020/03/26 Python
超全Python图像处理讲解(多模块实现)
2020/04/13 Python
Java byte数组操纵方式代码实例解析
2020/07/22 Python
HTML5使用drawImage()方法绘制图像
2014/06/23 HTML / CSS
探索欧洲最好的品牌:Bombinate
2019/06/14 全球购物
德国净水壶和滤芯品牌:波尔德PearlCo(家用净水器)
2020/04/29 全球购物
情况说明书格式范文
2014/05/06 职场文书
旅游节目策划方案
2014/05/26 职场文书
不服从公司安排检讨书
2014/09/24 职场文书
高并发下Redis如何保持数据一致性(避免读后写)
2022/03/18 Redis