美文网首页
构造函数和工厂函数

构造函数和工厂函数

作者: 青乌 | 来源:发表于2020-08-15 20:14 被阅读0次

    区分工厂函数和构造函数。

    工厂函数

    function people(name,sex){
      let obj = new Object();
      obj.name = name;
      obj.sex = sex;
      obj.saySex=fuction(){
         alert(`${this.name}的性别是${this.sex}`)
      }
      return obj;
    }
    
    let people1 = people('小明', '男')
    let people2 = people('小颖', '女')
    

    构造函数

    function people(name,sex){
      this.name = name;
      this.sex = sex;
      this.saySex=fuction(){
         alert(`${this.name}的性别是${this.sex}`)
      }
    }
    
    let people1 = new people('小明', '男')
    let people2 = new people('小颖', '女')
    
    console.log(people1 instanceof people) //true
    console.log(people2 instanceof people) //true
    

    两者书写上的不同:

    • 工厂函数创建了对象Object
    • 工厂函数多了return obj
    • 构造函数用this取代对象

    含义上的区别:

    • 工厂函数创造了两个人,但他们无法确认是不是同一类
    • 构造函数能够判断两个人都同属于people

    构造函数为之后应用的所有对象都挂上了属性,有了属性就做了分类,就不仅仅只是对象了。就可以创造更多分类,人、动物等等的不同类。这也是构造函数最大的优势。

    相关文章

      网友评论

          本文标题:构造函数和工厂函数

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