JavaScript 对象学习笔记(下)
来源:互联网 发布:梦幻西游mac右键 编辑:程序博客网 时间:2024/05/22 06:14
前面两篇讲解了对象的概念和创建方式 JavaScript 对象学习笔记(上)、Object.create()方法和对象属性访问、设置 JavaScript 对象学习笔记(中)。
上篇提到:
object.property;//使用点运算符访问对象属性object["property"]//使用中括号标识符访问对象属性
这两个表达式的值是相同的
第一种语法使用点运算符和一个标识符,这和C语言和Java语言访问一个结构体或者对象的静态字段非常相似。第二种方式看起来更像是数组,只是这种数组元素是通过字符串索引而不是数字索引。这种数组就是关联数组(associative array),JavaScript中的对象都是关联数组。当通过 [] 来访问对象的属性时。属性名通过字符串来表示,字符串是JavaScript的数据类型,在程序云的的时候可以修改和创建它们。
var customer = { address0 : "china", address1 : "guangdong", address2 : "guangzhou", address3 : "yuexiu"};//定义一个对象var addr = ""//用来储存遍历对象的属性值for(var i = 0; i < 4; i++){ addr += customer["address" + i] + '\t';//动态访问对象的属性值}console.log(addr);//china guangdong guangzhou yuexiu
对象继承
JavaScript对象具有”自有属性”(own property),也有一些属性是从原型对象继承而来的本篇中会使用到 inherit() 函数,可以查看JavaScript 对象学习笔记(中)和 JavaScript prototype学习笔记 了解 inherit() 函数和 prototype 属性。
假如要查询对象obj中的属性attr,如果obj中不存在attr,那么将会在obj的原型对象中查询attr,如果原型对象中也没有的attr属性的话,但是这个原型对象也有原型,那么继续在在这个原型对象的原型上查询,直到找到attr或者查找到一个原型对象是null的对象为止,对象的原型对象构成了一个“链”,通过这个“链”可以实现属性的继承。
var obj = {}//obj从Object.prototype继承对象的方法obj.attr = 1;//obj定义一个属性attrvar p = inherit(obj);//p继承obj和Object.prototypep.x = 2;//p定义一个属性xvar q = inherit(p);//q继承p和Object.prototype、objq.z = 3;//q定义一个属性zvar str = q.toString();//toString继承自Object.prototypeconsole.log("q-->" + q.attr + q.x);//q-->12
对象q结构:
跟着上面的例子,假设给对象obj的属性attr赋值,如果obj中已经有了attr属性(这个属性是自有属性),那么这个赋值只会改变这个已有的attr属性,如果obj中不存在attr属性,那么赋值操作会给obj对象添加一个新的属性attr,如果之前obj继承自attr属性,那么继承的attr属性将会被新创建的同名属性覆盖。
var unitcircle = {r : 1};//用来继承的属性var obj = inherit(unitcircle);//obj继承属性rc.x = 1; c.y = 2;//定义两个属性c.r = 3;//c覆盖继承来的属性c.r;//3unitcircle.r;//1,原型对象的属性没有改变
- JavaScript 对象学习笔记(下)
- JavaScript学习笔记——对象和数组(下)
- JavaScript学习笔记(对象)
- JavaScript学习笔记(三)---JavaScript对象
- Javascript学习笔记-----对象
- javascript对象学习笔记
- JavaScript学习笔记:对象
- Javascript学习笔记(对象)
- javascript 学习笔记(八)javascript对象javascript
- javascript学习笔记 (三)-window对象
- (9)JavaScript学习笔记 - 对象
- JavaScript学习笔记(二)JS对象
- Javascript学习笔记-2(对象、函数)
- JavaScript 对象学习笔记(上)
- JavaScript 对象学习笔记(中)
- JavaScript对象学习笔记(一)
- JavaScript学习笔记(三)--对象
- 学习笔记:javascript 窗口对象(window)
- 从关系型数据库到非关系数据库
- Java SPI机制
- 杭电acm ----1108题
- 小技巧:eclipse如何设置显示行号
- Zabbix添加自定义监控项
- JavaScript 对象学习笔记(下)
- TCP、UDP协议,java网络通信基础
- Sruts2与Struts1框架处理流程的区别
- 矩阵
- Codeforces 570A Elections
- 线程(代码实现)详解
- 野指针
- zabbix自定义用户key与参数User parameters(24)
- c和指针 前三章知识点以及常见的问题和程序分析