一,对象的创建
对象的创建有三种方法:
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是布尔值
五,对象的三个属性
分别为:原型属性,类属性,可扩张属性
原文:http://www.cnblogs.com/codechild/p/6691248.html