代码改变世界

js中关于对象的总结

2017-04-10 22:16  渣渣爱学习  阅读(232)  评论(0编辑  收藏  举报

一,对象的创建

     对象的创建有三种方法:

           1,通过对象直接量的创建,比如 var k = {x : 1},这种创建方法的原型链是Object.prototype

           2,通过new 构造函数,比如 var k = new Array();//创建一个空数组        tips:除了用一些内置函数构造,也可以用自己写的函数,比如 var k = new function(){var x = 1;return x;}     这种创建方法的原型链是构造函数本身的原型链,比如Array.prototype

           3,通过object.create()创建,object.create()是一个静态函数,而不是提供给某个对象调用的方法,使用方法就是传入所需的原型对象

比如  var x = {o:1,k:1};//x继承了属性o,k   

object.create()也可以传入null,但所创建的对象没有包括对象的基本方法,比如toString 也就是说啥都没有 比如 var x = object.create(null)

object.create()可以创建一个普通的空对象,这时候传入的是object.prototype或者,这时候可以使任何对象可继承

二,属性的查询和设置

            属性的查询和设置通过 . 和[] 比如  var x = {a : 1,

                                                                       name : "name1"}//这里有个小技巧,属性名称为name ,不加双引号,即“name”,加载速度更快

 所以  x.a = 1,  x["name"] // 输出结果 name1   

三,继承

     var o ={}; 

     o.x = 1;//给o的一个属性x,

     var p = inherit(o);//p继承o

     p.y = 2; 

     var k = inherit(p);//k继承p

     k.x + k.y //输出结果为3,因为k里面通过原型链有了o,p的属性

四,属性的特性

     属性有四个特性: value,writable,enumerable,configurable,其中可枚举enumerable和可配置configurable是布尔值

五,对象的三个属性

       分别为:原型属性,类属性,可扩张属性