zoukankan      html  css  js  c++  java
  • js 创建对象的几种模式

    工厂模式

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

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

  • 相关阅读:
    react 有多个按钮时点击单个按钮独立控制Loading
    React路由通信
    体育竞技模拟比赛
    json与csv格式相互转换
    替换表格内容及csv转html及CGI
    excel转换成csv格式
    文件读写笔记
    自定义手绘风
    numpy&matplotlib读书笔记
    Python成绩雷达图
  • 原文地址:https://www.cnblogs.com/chenmz1995/p/12094310.html
Copyright © 2011-2022 走看看