对象的操作
和别的数据类型不一样,我们通过引用来操作对象。这样说可能有点抽象,给个例子吧
var x = {name : 'Anna', age : 12}; var y = x; y.age = 22; console.log(x.age); -->22
因为y是对x对象的引用,所以对y的操作,会改变x的值。
对象属性的引用
.和[]都能够对对象的属性进行引用,那么他们有什么区别呢。给一段代码
var x ={name : 'Anna', age : 22}; console.log(x.name); -->Anna console.log(x['name']); -->Anna console.log(x['n'+'am'+'e']); -->Anna console.log(x[name]); ERROR!!
从上面可以看出来,用.对对象的属性进行引用的话,.后面接的是key值,而用[]对对象的属性进行引用的话,里面写的是计算结果为key的表达式。
这是因为,用.来引用对象的时候,是通过标识符来表示属性名字的,它是无法修改的。
但是用[]来引用对象的时候,是通过字符串来表示属性名字的,它是可以修改的。
我知道看到这里你一定会觉得很晕,没懂在讲什么。因为我也是这样,但是给个例子就知道啦。
var Good_friends = {}; var girls = [{id:1,name:小可},{id:2,name:阿呆}] for(var i = 0 ; i<girls.length ; i++){ Good_friens[girls[i].id] = girls[i]; }
这个例子表达的意思是,把对象girl取出来,作为对象的属性,存在Good_friends里面。写的明白些,应该是这样:
Good_friends = { 1:girls[0], 2:girls[1] }
里面每一个属性对应的值又是一个对象。
在这个例子里面可以充分体现出,用.和用[]来引用对象属性的区别。因为在这个例子里面根本不可能用.来引用对象的属性。(这也顺便介绍一下怎么给一个对象里面添加新的属性)
继承
对象里,有它自己的属性,也有从原型中继承的属性。举个栗子:
var o = {}; o.x = 1; var p = inherit(o); p.y = 2; var z = inherit(z); console.log(z.x*z.y); ->2
也就是说,如果我们要在对象中找他的一个叫做x的属性,若是这个对象里面没有x属性,那么,就会在该对象的原型中寻找x属性,若是它的原型中还是没有x属性,又去上一级原型中寻找,以此类推,直到查找到一个为null的原型。
属性的赋值:如果我们要对z.x进行赋值,那么首先会查看x属性是不是只读的,如果是,那么赋值失败。如果不是,那么会在对象x中创建一个属性x,然后对它进行赋值,并不会影响到原型中x的值。
delete运算符可以删除对象的属性,但是它只是断开对象属性和宿主之间的关系。
而且delete只能删除自有属性,不能删除继承属性。
删除一个不可配置的属性会报错。
检测属性
来判断一个属性是否存在于这个对象中,
一共有三个方法(只列了两个,还有一个我还没懂囧)
in运算符,hasOwnProperty()
o = {x:1}; 'x' in o; ->true hasOwnProperty('x'); ->true //检测自有属性
原型属性
对象的原型属性是用来继承属性的。原型属性是在实例对象创建之时就设设好的,通过new创建的对象,使用构造函数中的prototype属性作为它的原型属性。
function x() { this.name = 'ye'} x.prototype.number = 2; y = new x(); console.log(y); ->x {name: "ye", number: 2} (x.prototype).isPrototypeOf(y); ->true
以上是我在学习对象过程中的收获。
还剩下许多知识点还没有掌握,希望能够在以后的变成过程中,结合实际去学习。
以后会根据所学一点点更新的。
相关推荐
面向对象软件工程方法学实践,值得一看
传统方法学与面向对象区别.pdf
面向对象方法学初学者必备,从入门到精通,某重点大学讲义
1.java学习面向对象思想.zip1.java学习面向对象思想.zip1.java学习面向对象思想.zip1.java学习面向对象思想.zip1.java学习面向对象思想.zip1.java学习面向对象思想.zip1.java学习面向对象思想.zip1.java学习面向对象...
面向对象方法学中的面向对象方法学导论,不错的课件哦~
UML面向对象方法学 清华出版 张少锋编著 面向对象技术基础 中国石油大学软件工程指定教科书
易语言面向对象学习 1 一.枯燥的理论 2 1.对象和类 2 2.类的“成员”与“方法” 2 3.实例化 2 4.继承 3 二.牛刀小试 3 1.定义一个类,生成实例对象 3 2.“_初始化” 与 “_销毁” 5 三.一个更丰富的“员工...
C#面向对象学习心得.txt
java-学习-面对对象-匿名对象
JAVA面向对象编程 可以供学生 学习
1面向对象方法论及UML 简介 2云豹( Rumbaugh)面向对对象的方法论 3雪梨与米勒(Shlaer&mellor)面向对象方法论 4 雅寇森(Jacobson)面向对象方法论 5 布什(Booch)面向对象方法论 6 尤顿(Yourdon)面向对象方法...
jajava学习面向对象va学习java学习面向对象java学习面向对象java学习面向对象
面向对象方法学知识点诚心整理
易语言学习进阶通用对象源码,学习进阶通用对象
烟台大学,面向对象方法学试题及答案一共17套,有考试的可以参观看一看
Java 对象和类的学习例子 Java 对象和类的学习例子
跟我学Java26日通、向对象(基础) 跟我学Java26日通、向对象(基础)
对js 的dom 文档对象学习,该代码是比较综合的学习dom操作的三个示例,易学好掌握。
【第七章】 对JDBC的支持 之 7.3 关系数据库操作对象化 ——跟我学spring3 【第七章】 对JDBC的支持 之 7.4 Spring提供的其它帮助 ——跟我学spring3 【第七章】 对JDBC的支持 之 7.5 集成Spring JDBC及最佳...
类与对象学习 学习笔记 描述类与对象学习中的重点知识