码迷,mamicode.com
首页 > Web开发 > 详细

js 创建对象的几种模式

时间:2019-12-25 01:17:07      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:构造   turn   object   创建对象   绑定   调用   color   操作符   共享   

 

工厂模式

    function createPerson(name, age) {
        let o = new Object();
        o.name = name
        o.age = age
        o.say = function() {
            console.log("name", this.name, "age", this.age);
        }
        return o
    }
    let object1 = createPerson(‘n1‘, ‘a1‘);
    let object2 = createPerson(‘n2‘, ‘a2‘);
    object1.say();
    object2.say();

 

    调用这个工厂函数,传递name和age每次都会返回一个包含两个属性和一个方法的对象

 

构造函数

    function Person(name, age) {
        this.name = name;
        this.age = age;
        this.say = function () {
            console.log("name", this.name, "age", this.age);
        }
    }
    let p1 = new Person(‘n1‘, ‘a1‘);
    let p2 = new Person(‘n2‘, ‘a2‘);
    p1.say();
    p2.say();

 

可以看到构造函数之中其实没有return返回一个对象的。但是这些都是使用new操作符后自动有些操作。

(1)创建一个新对象

(2)这个新对象会绑定到函数调用的this

(3)对象返回

 

原型模式

    function Person() {
    }
    Person.prototype.name = ‘name‘
    Person.prototype.age = ‘age‘
    Person.prototype.say = function () {
        console.log(this.name, this.age);
    }
    let p = new Person()
    p.say();

 

使用原型的好处是可以让所有的实例对象共享它所包含的属性和方法,不必在构造函数中定义对象实例信息。

js 创建对象的几种模式

标签:构造   turn   object   创建对象   绑定   调用   color   操作符   共享   

原文地址:https://www.cnblogs.com/chenmz1995/p/12094310.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!