Fork me on GitHub

之前一直对对象这东西搞不懂,最开始接触js,有些概念都不理解,买了两本书,有人推荐用高级程序设计做教材,还买了一本权威指南,花了几天时间,很快的把高级程序设计翻了一下,很多东西不知所云,第一遍也只想大概了解一下有哪些东西了,快速翻完后,决定开始看权威指南,从最基础的看起,先大概理解概念,也算两本书结合着看, 这次看呢,知道的东西比之前多了一些,虽然说,知识理解了,书上的例子能看懂,但自己还是写不出来,但是呢,继续加油,大学三年完了,感觉现在才真正想要好好学习,现在快一个月了,知道了一点皮毛,刚看到一篇关于阿里巴巴前端面试的博客,ta入博客园8个月了,我现在才一个月,道且长,往之即可。

  • 关于对象:是一种复合值,将很多值聚合在一起,也是属性和无序集合(名值对)。而且可以从一个称为原型(与该对象存在某种关联的对象)的对象继承属性,(对象的方法通常是继承属性)(这句话对理解原型链和继承特别重要。)
  • (我现在的理解,对象继承自原型,原型本身也是对象,一般都是普通对象,所以也有一个继承的原型---Object.prototype(最顶层的原型)所以由此形成一个原型链
  • 除了字符串,数字,true,false,null 和undefined外的值都是对象。对象中不能存在两个同名属性。
  • 除属性外,对象还有三个相关对象特性(object attribute):原型,类,可扩展标记(extensible flag是否可添加新属性)。
  • 三类对象

              内置对象(native object):ES规范定义的,Array,Function,Date,RegExp.

              宿主对象(host object): 宿主环境(web浏览器定义的)。

              自定义对象 :有运行中的代码创建的对象。

  • 两类属性:自有属性,继承属性。

 

  • 创建对象途径有三
  1. 对象直接量:var point = {x:0, y:0};
  2. new + constructor(构造函数):var 0 = new object(){函数体};
  3. Object.create(),其中第一个参数就是这个对象的原型   :var o1 = Object.create({x:1, y:1});   //o1继承属性x,y          

                                                                                    var o2 = Object.create(Object.prototype);  //等价于{}和new Object()

  • getter/setter:属性(名-值),若值用getter /setter代替,则该属性为存储器属性(accessor property),

                                                   get accessor_prop(){函数体},(,不可少) set accessor_prop(value){}

   

 posted on 2015-07-29 23:23  六人行与  阅读(100)  评论(0编辑  收藏  举报