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)
js你说的是javascript吗?如果是javascript如下:
第一种:Object构造函数创建
var Person = new Object()
Person.name = 'Nike'Person.age = 29
第二种:使用对象字面量表示法
var Person = {}//相当于var Person = new Object()
var Person = { name:'Nike' age:29}
还有好多种的。我就简单写2个。
可以参考如下内容:第一种模式:工厂方式
[javascript] view plain copy print?
var lev=function(){
return "啊打"
}
function Parent(){
var Child = new Object()
Child.name="李小龙"
Child.age="30"
Child.lev=lev
return Child
}
var x = Parent()
alert(x.name)
alert(x.lev())
说明:
1.在函数中定义对象,并定义对象的各种属性,,虽然属性可以为方法,但是建议将属性为方法的属性定义到函数之外,这样可以避免重复创建该方法
2.引用该对象的时候,这里使用的是 var x = Parent()而不是 var x = new Parent()因为后者会可能出现很多问题(前者也成为工厂经典方式,后者称之为混合工厂方式),不推荐使用new的方式使用该对象
3.在函数的最后返回该对象
4.不推荐使用这种方式创建对象,但应该了解
第二种模式:构造函数方式
[javascript] view plain copy print?
var lev=function(){
return "啊打"
}
function Parent(){
this.name="李小龙"
this.age="30"
this.lev=lev
}
var x =new Parent()
alert(x.name)
alert(x.lev())
说明:
1.与工厂方式相比,使用构造函数方式创建对象,无需再函数内部重建创建对象,而使用this指代,并而函数无需明确return
2.同工厂模式一样,虽然属性的值可以为方法,扔建议将该方法定义在函数之外
3..同样的,不推荐使用这种方式创建对象,但仍需要了解
第3种模式:原型模式
[javascript] view plain copy print?
var lev=function(){
return "啊打"
}
function Parent(){
}
Parent.prototype.name="李小龙"
Parent.prototype.age="30"
Parent.prototype.lev=lev
var x =new Parent()
alert(x.name)
alert(x.lev())