var ob = new Object() ob.name = 'name' ob.say = function() {}
var ob = { name: 'name', say: function() {} }
批量建立對象的方式
function createOb (name){ var ob = new Object() ob.name = name ob.say = function() {} return ob } var ob1 = createOb('zhang') var ob2 = createOb('san')
構造函數須要大寫
function Parent(name) { this.name = name this.say = function() {} } var child1 = new Parent('child1') var child2 = new Parent('child2')
當咱們建立一個函數時,該函數就會具有一個prototype屬性,這個屬性指向經過構造函數建立的那個函數的原型對象。通俗點講原型對象就是內存中爲其餘對象提供共享屬性和方法的對象。
function Parent2(name) { Parent2.prototype.name = name Parent2.prototype.say = function() {} }
上述每次都須要寫Parent2.prototype,能夠優化
function Parent3() {} Parent3.prototype = { name: 'name' say: function(){} } var ob = new Parent3
可是此處改變了Parent3的constructor 屬性,故咱們須要顯示的指出constructor
function Parent4() {} Parent4.prototype = { constructor: Parent4, name: 'name', say: function() {} } var ob = new Parent4()
function Parent5(name) { this.name = name } Parent5.prototype = { constructor: Parent5, say: function() {} } var ob = new Parent5('zhang')
var ob1 = {} var ob2 = new Object() var ob3 = Object.create(null)
前兩種方式建立的對象含有原型,最後一種方式建立的對象無原型,是真正意義上的空對象
https://segmentfault.com/a/11...segmentfault