javascript中创建对象的几种方式

JavaScript010

javascript中创建对象的几种方式,第1张

1.对象的字面量的形式var obj = {}

2.new 的方式来调用构造函数的形式

Object是个构造函数var obj = new Object()obj.name = '黄忠'

3.工厂方法

function fn (name) {

 // 1. 创建一个空对象

 var obj = new Object()

 // 2. 给对象添加属性和方法

 obj.name = name

 // 3. 返回一个obj对象

 return obj

}

4.构造函数

帕斯卡命名 第一个单词的第一个字母大写,后续的每一个单词的第一个字母都大写

通过this动态的给构造函数添加属性和方法

function Hero(name, weapon, equipment, blood) {

    // this 动态的给对象增加成员

    // this 指向了当前对象

    this.name = name

    this.weapon = weapon

    this.equipment = equipment

    this.blood = blood

    this.attack = function () {

      console.log(this.name + ':攻击')

    }

    this.run = function () {

      console.log(this.name + ': 加速跑')

    }

  }

  var hero1 = new Hero('黄忠', '弓箭', ['头盔', '靴子'], 100)

在JavaScript中定义对象可以采用以下几种方式:

1.基于已有对象扩充其属性和方法

2.工厂方式

3.构造函数方式

4.原型(“prototype”)方式

5.动态原型方式 -- 1.基于已有对象扩充其属性和方法

object.name = "zhangsan"

object.sayName = function(name)

{

       this.name = name

       alert(this.name)

}

object.sayName("lisi") -- 2.工厂方式 

function createObject() 

{

       var object = new Object()

       object.username = "zhangsan"

       object.password = "123"

       object.get = function()

       {

              alert(this.username + ", " + this.password)

       }

       return object

}

var object1 = createObject()

var object2 = createObject()

object1.get()

 -- 采用带参数的构造方法:

function createObject(username, password)

{

       var object = new Object()

       object.username = username

       object.password = password

       object.get = function()

       {

              alert(this.username + ", " + this.password)

       }

       return object

}

var object1 = createObject("zhangsan", "123")

object1.get()