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

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

  • 相关阅读:
    P2319 [HNOI2006]超级英雄
    P4302 [SCOI2003]字符串折叠
    P1122 最大子树和
    HDU——2089 不要62
    P4555 最长双回文串
    P1463 [HAOI2007]反素数
    P2412 查单词
    P2787 语文1(chin1)- 理理思维
    P3078 [USACO13MAR]扑克牌型Poker Hands
    ubuntu中desktop与alternate版本的区别(转载)
  • 原文地址:https://www.cnblogs.com/chenmz1995/p/12094310.html
Copyright © 2011-2022 走看看