JavaScript创建对象的几种方式
JavaScript创建对象简单地说,无非就是使用内置对象或各种自定义对象,当然还可以用json;但写法有很多种,也能混合使用。
1.对象字面量的方式
person = {
firstname:"Mark",
lastname:"Yun",
age:"25",
eyecolor:"black"
}
2. 用function来模拟无参的构造函数
function Person(){};
var person = new Person();//定义一个function,如果使用new“实例化”,该function可以看做是一个Class,这一段是让person先成为object类,才能添加属性和方法;
person.name = "Mark";
person.age = "25";
person.work = function(){
alert(person.name+"hello...");
}
person.work();//调用person对象中work方法;
3. 用function来模拟带参构造函数来实现(用“this”关键字定义构造的上下文属性)
function Pet(name, age, hobby){
this.name = "name";//==this==作用域是当前对象;
this.age = age;
this.hobby = "hobby";
this.eat = function(){
alert("我叫"+this.name+",我喜欢"+this.hobby+",是个程序猿");
}
}
var maidou = new Pet("麦兜", 25, "coding");//实例化,创建对象;
maidou.eat();//调用eat方法;
4. 用工厂方式来创建(内置对象)
var wcDog = new Object();
wcDog.name = "旺财";
wcDog.age = 3;
wcDog.work = function(){
alert("名字是"+wcDog.name+"的狗狗,今年"+wcDog.age+"岁了!");
}
wcDog.work();//调用wcDog对象中work方法;
5. 用原型方式来创建
function Dog(){
}
Dog.prototype.name = "旺财2号";
Dog.prototype.age = 3;
Dog.prototype.eat = funtion(){
alert(this.name+"是个吃货!");
}
var wangcai = new Dog();
wangcai.eat()//调用eat方法;
6.用混合方式来创建
function Car(name, price){//创建带参构建函数;
this.name = name;
this.price = price;
}
Car.prototype.sell = function(){//为构建函数添加原型方法;
alert("我是"+this.name+",我现在卖"+this.price+"万元");
}
var camry = new Car("凯美瑞", 27);
camry.sell();//调用原型方法;