美文网首页
JS中的构造函数你清楚吗?

JS中的构造函数你清楚吗?

作者: 羞羞的王大锤 | 来源:发表于2020-03-06 23:50 被阅读0次

构造函数就好像一个小型工厂,能够创造无数类似的对象
我们看到构造函数,很像是返回对象的函数,定义后,每当需要创建新对象时都可调用它

如何创建构造函数

现在我们试着创建一个构造函数用于创建一个小狗对象

function Dog(name,weight){
    this.name = name;
    this.weight = weight;
}

我们还可以在构造函数中定义方法

function Dog(name,weight){
    this.name = name;
    this.weight = weight;
    this.bark= function(){
        alert('wang wang !')
    }
}

你可能注意到这几点:

  • 构造函数和普通函数定义看起来区别不大,只是一般把构造函数名称首字母大写,
  • 括号中的形参就是为小狗对象提供的属性
  • 构造函数内部并没有局部变量,而使用的是this
  • 构造函数没有返回值

如何使用构造函数

var wangcai = new Dog('wangcai',20);

为创建小狗实例对象,我们需要用到new运算符,然后调用构造函数Dog并指定实参,这样就完成了实例对象的创建

构造函数工作的原理是什么呢?

var wangcai = new Dog('wangcai',20);

拿上面这个作例子,执行过程可以分解为以下几个步骤:

  1. new创建一个空的对象
  2. new设置this,并指向新创建的对象
  3. 调用Dog,并将实参传入函数
  4. 执行构造函数代码,Dog给新创建的this对象的属性赋值
  5. 运算符new会返回this(指向新创建的对象的引用)
  6. 将返回的指向新对象的引用赋给变量wangcai

最后 🙌

好啦,以上就是我本次分享的全部内容啦,如果你觉得我的文章对你有一丢丢帮助,那么请不要吝啬你的赞👍哦,阿门~

相关文章

  • JS中的构造函数你清楚吗?

    构造函数就好像一个小型工厂,能够创造无数类似的对象我们看到构造函数,很像是返回对象的函数,定义后,每当需要创建新对...

  • 前端JS进阶二(ES6-Class语法)

    Class和普通构造函数有何区别 前端会使用ES6中的Class来代替JS中的构造函数 JS 构造函数 Class...

  • 面向对象/内置构造函数

    内置构造函数创建对象 JS中的内置构造函数 String Number Boolean 注意:(区别于string...

  • 3-javascript 构造函数

    js中面向对象编程是基于构造函数(consstructor)和原型链(prototype)的。 构造函数作为对象的...

  • js原型和继承

    原型 一、原型的概念 执⾏构造函数代码时, js系统会给这个构造函数创建⼀个原型对象,构造函数中也包含⼀个prot...

  • 我的JS笔记 -- 类

    JS是没有类的,但JS可以利用构造函数实现近似类的功能。 构造函数 构造函数,是用来创建对象的函数。与普通的函数声...

  • JS中的构造函数

    想生成10个相同对象,每个对象100条属性,可以吗?可以!怎么做呢?写这样10个对象太累啦,必须用for循环啊。用...

  • JavaScript原型对象

    原型:概念:执行构造函数代码时,js系统会给这个构造函数创建一个原型对象,构造函数中也包含一个prototype属...

  • 论js里 面向对象的原型

    一、原型的概念: 1、原型的概念:执行构造函数代码时,js系统会给这个构造函数创建一个原型对象,构造函数中也包含一...

  • 2020-12-15

    js对象的创建和函数 创建对象 工厂模式 构造函数 原型方式+构造函数

网友评论

      本文标题:JS中的构造函数你清楚吗?

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