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

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

  • 相关阅读:
    vim高亮
    mengning
    4.4内核osal
    tmpvalgrind
    为什么引入协程
    alloc_call_show(转)
    TSAN
    如何查看哪些进程占用Buffer和Cache高(转)
    ASAN详解其他参考链接
    Linux系统与程序监控工具atop教程(转)
  • 原文地址:https://www.cnblogs.com/chenmz1995/p/12094310.html
Copyright © 2020-2023  润新知