美文网首页JavaScript 使用记录
JavaScript 创建对象 2 构造函数模式

JavaScript 创建对象 2 构造函数模式

作者: 赵者也 | 来源:发表于2017-12-12 11:20 被阅读8次
            function Person(name, age, job) {
                this.name = name;
                this.age = age;
                this.job = job;
                this.sayName = function() {
                    console.log(this.name);
                };
            }
    
            var person1 = new Person("Neo", 29, "Teacher");
            person1.sayName();
            var person2 = new Person("Toby", 30, "Software Engineer");
            person2.sayName();
    
            console.log(person1 instanceof Object);
            console.log(person1 instanceof Person);
    

    上述代码输出结果:

    输出结果
    1. 将构造函数当做函数
      我们可以将构造函数当做函数使用。实际上,不存在定义构造函数的特殊语法。任何函数,只要通过 new 操作符来调用,那它就可以作为构造函数;而任何函数,如果不通过 new 操作符调用,那它跟普通函数也不会有什么区别。

    Person 构造函数的使用实例:

            var person1 = new Person("Neo", 29, "Teacher");
            person1.sayName();
    
            var o = new Object;
            Person.call(o, "Toby", 30, "Software Engineer");
            o.sayName();
    

    我们看到 Person 也和普通函数一样,也可以正常使用 call 方法。

    1. 构造函数的问题

    使用构造函数的主要问题,就是就是每个方法都要在每个实例上重新创建一遍。例如 sayName() 方法其实就是每个实例上都有一个全新的不同的对象,这其实很没必要。要解决这个问题需要使用到我们接下来要了解的原型模式。

    相关文章

      网友评论

        本文标题:JavaScript 创建对象 2 构造函数模式

        本文链接:https://www.haomeiwen.com/subject/xyaiixtx.html