javascript对象

 对象,在javascript中具有着不可替代的作用。

一般而言,我们认为有两种方式定义对象:

1、字面形式

var object = {
  name: 'zhuhuoxingguang',
  sex: '男',
  age: 28      
}

  这属于我们比较熟悉的方式,也是我们使用的比较多的一种方式。

2、构造形式

var object = {}
object.name = '烛火星光';
object.sex = '男';
object.age = 28;

  也比较多见,我刚开始接触到对象的写法的时候,一直都是这么写的,随着时间的变化,发现这种写法相对前面一种显得麻烦很多,只有在特定的情况下,需要补充一些已经定义的变量的时候,才会采用这种方式。

总体而言,javascript中对象的定义,也就基本上最熟悉的是这两张方式。

但是仔细想想,javascript中有一个构造函数的用法,通过new 调用构造函数,也能生成一个对象。

var ninja = new Ninja();

  此时ninja也属于一个对象,那么自然也可以通过ninja.property的方式添加各种属性,但是既然是构造函数,那自然也可以通过在函数内部定义各种属性了。

function Ninja(){
  this.property = 属性;  
}

  剩下的就是构造函数的用法了,包括各种继承的用法,殊途同归,其实这也是对象定义的方法中的一种,至于说可以通过构造函数实现的各种对象定义的扩展,不细述了。

  在ES5中新增了一种创建对象的方式,一般比较常见于对象继承方面,Object.create()。

var object = {
  name: 'zhuhuoxingguang',
  sex: '男',
  age: 28      
}
var object1 = Object.create(object);

  此时,会完全继承object对象,具有object的一切属性和方法,接着就可以定义自身属性或者方法,而不会影响object对象。

  另外一种可能出现比较多的情况是Object.create(null);

var ∅ = Object.create(null);

  创建一个真正的空的对象,他没有任何属性,包括__proto__属性也不存在,属于完完全全的空对象。

原文地址:https://www.cnblogs.com/zhuhuoxingguang/p/6196240.html