JS 面向对象 构造函数

在说构造函数之前,先讲讲JS面向对象的创建对象方法,主要有三种: 工厂函数模式,构造函数模式 以及 原型模式。

本篇主要讲构造函数

以工厂函数模式做对比   (此方法违背开闭原则,因此并不推荐)

        // 工厂函数模式
        function factory(name, age) {
            // 创建一个空对象
            const obj = {}
            // 将用户存入的两个值放到空对象里面
            obj.name = name;
            obj.age = age
            // 返回obj对象
            return obj
        }

        const p = factory('只因', 18)
        console.log(p);

总共有三步:1. 创建对象 2. 对象赋值 3. 返回对象

构造函数模式:

        // 构造函数模式
        function constructor(name, age) {
            // this   谁调用它,它就指向谁  (此处的this指向的是  new 出来的实例化对象)
            this.name = name
            this.age = age
        }

        const p = new constructor('太美', 18)
        console.log(p);
  

区别:

1.构造函数不用像工厂函数那样声明对象,返回对象。因为new,为我们做了这些操作

2.工厂函数,只是一个躯壳,只负责加工生产。不产生原型上的联系(除了构造函数外的所有函数都是工厂函数)

3.构造函数必须要使用 new 不然 this 会指向 window。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值