JAVASCRIPT面向对象的程序设计之创建Javascript对象

Javascript创建对象:

1)Object对象:

var obj = new Object();
obj.name = "XC";
obj.age = 18;

obj.description = function() {
    console.log(this.name + " -> " + this.age);
}

2)字面量:

var obj = {
    name: "XC",
    age: 18,
    description: function() {
        console.log(this.name + " -> " + this.age);
    }
}

3)工厂模式:

function createObj(name, age) {
    var obj = new Object();
    obj.name = name;
    obj.age = age;
    obj.description = function() {
        console.log(this.name + " -> " + this.age);
    };
    return obj;
}
var obj1 = createObj("XC", "18");

4)构造函数模式:

function Person(name, age) {
    this.name = name;
    this.age = age;
    this.description = function() {
        console.log(this.name + " -> " + this.age);
    }
}
var person1 = new Person("XC", 18);

5)原型模式:

function Person() {}

Person.prototype.name = "XC";
Person.prototype.age = 18;
Person.prototype.description = function() {
    console.log(this.name + " -> " + this.age);
};
var person = new Person();

6) 组合构造函数模式和原型模式:

function Person(name, age) {
    this.name = name;
    this.age = age;
}

Person.prototype.description = function () {
    console.log(this.name + " -> " + this.age);
};

var person1 = new Person("XC", 18);

7) 动态原型模式:

function Person(name, age) {
    this.name = name;
    this.age = age;
    if (typeof this.description != "function") {
        Person.prototype.description = function() {
            console.log(this.name + " -> " + this.age);
        };
    }
}
var person1 = new Person("XC", 18);

8)寄生构造函数模式:

function Person(name, age) {
    var obj = new Object();
    obj.name = name;
    obj.age = age;
    obj.description = function() {
        console.log(this.name + " -> " + this.age);
    };
    return obj;
}
var person = new Person("XC", 18);

注意:通过寄生构造函数创建的对象类型为Object 而不是构造函数类型(Person), 可通过instanceof操作符进行判断,

该模式和工厂模式实际上是一样的; 

 

9)稳妥构造函数模式(稳妥对象,指的是没有公共属性):

function Person(name, age) {
    var obj = new Object();
    obj.description = function() {
        console.log(name + " -> " + age);
    };
    return obj;
}
var person = Person("XC", 18);

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值