温故而知新之- Javascript工厂函数与构造函数

举报
余人杰 发表于 2020/09/27 16:09:04 2020/09/27
【摘要】 我们可以如何优雅的创建对象?

我们可以如何优雅的创建对象?


可以使用工厂函数,构造函数进行构建对象。


何为工厂函数?


在函数中返回对象的函数。



有如下特点:


1.减少重复创建相同类型对象的代码


2.修改工厂函数的方法影响所有同类对象


我们之前在创建相同类型对象时,可能会使用字面量形式,需要复制属性和方法结构。

const hw = {
    name: "华为",
    show() {
        console.log(this.name);
    }
};
const mi = {
    name: "小米",
    show() {
        console.log(this.name);
    }
};


我们可以使用工厂函数进行简化

function mobile(name) {
    return {
        name,
        show() {
            console.log(this.name);
        }
    };
}
const hw = mobile("华为");
hw.show();
const mi = mobile("小米");
mi.show();


跟工厂函数相似的是构造函数


构造函数的上下文为新的对象实例。


关于构造函数有几个点需要注意下:

1.构造函数名每个单词首字母大写 命名规范

2.this指当前创建的对象

3.不需要返回this,系统会自动完成

4.需要使用new关键词生成对象

function Mobile(name) {
  this.name = name;
  this.show = function() {
    console.log(this.name);
  };
  //不需要返回,系统会自动返回
  // return this;
}
const hw = new Mobile("华为");
hw.show();
const mi = new Mobile("小米");
mi.show();

心得:在项目或者平常的练习中,我常用的构造函数,他可以帮助我们创建相同类型的对象,如何可以基于这个对象进行扩展,实现更强大丰富的功能。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。