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()