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