首页 > 其他 > 详细

面向对象 part3

时间:2019-11-15 23:02:14      阅读:107      评论:0      收藏:0      [点我收藏+]

6.2创建对象

方法:对象字面量  object构造函数

缺点:都是创建单个对象。同一个接口创建多个对象,会产生大量重复代码

6.2.1工厂模式

用函数封装以特定的接口创建对象

function createPerson (name,age) { //返回一个对象的函数就是工厂函数
            var obj = {
                name: name,
                age: age,
                sstName: function (name) {
                    this.name = name
                }
            }
            return obj
        }
  • 适用场景:需要创建多个对象。
  • 缺点: 对象没有一个具体的类型、都是Object类型。

6.2.2构造函数模式

与工厂函数区别:

  • 没有return
  • 没有显式创建对象
  • 直接将属性和方法赋予给this

要创建新实例,必须用new操作符

  • 创建一个新对象
  • 将构造函数的作用域赋予给新对象(因此this便指向新对象)
  • 执行构造函数中的代码(为这个新对象添加属性)
  • 返回新对象
function Person (name,age) {
            this.name = name
            this.age = age
            this.setName = function (name) {
                this.name = name
            }
        }
        var p1 = new Person(‘tom‘,15)
        var p2 = new Person(‘jack‘,14)

        console.log(p1 instanceof Person) //true p1是Person类型

        function student (name,grade) {
            this.name = name
            this.grade = grade
        }  

        var s1 = new student(‘peter‘,6)
        console.log(s1 instanceof student) //true s1是student类型

        console.log(p1,p2)
  • 使用场景: 需要创建多个类型确定的对象。(实例标示为以˙哦那个特定的类型)
  • 缺点: 每个对象都有相同的数据(方法),浪费内存。

 

面向对象 part3

原文:https://www.cnblogs.com/-constructor/p/11869968.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!