美文网首页
构造函数与new

构造函数与new

作者: _claus | 来源:发表于2018-03-18 16:32 被阅读0次

构造函数

构造函数就是一个普通的函数,但是具有着自己的特征和用法。

function People(name, age){
  this.name = name
  this.age = age
}  

var man1 = new People('张三',14)  
var man2 = new People('李四',15)
man1.name // ‘张三’
man2.name // ‘李四’

上面代码中,People就是一个构造函数,为了加以区分,通常构造函数名字第一个字母大写。
构造函数的特点:

  • 函数体内使用this关键字,代表了所要生成的对象实例。
  • 生成对象的时候,必须使用new命令。

new

new 命令的作用就是执行构造函数,生成一个实例对象。

function People(name, age){
  this.name = name
  this.age = age
}

var o = new People('张三',20)
o.name // ‘张三’
o.age // ‘20’

new命令原理

  • 创建一个空对象,作为将要返回的对象实例。
  • 将这个空对象的原型指向构造函数的prototype属性。
  • 将这个空对象赋值给函数内部的this关键字。
  • 执行构造函数内部代码。

如果构造函数内部有return语句,return语句后面如果是一个对象,new命令会返回return后面的指定对象;如果不是对象,那么始终返回this对象。

new命令始终返回一个对象,要么是return指定对象,要么就是实例对象。

相关文章

  • JS基础核心之原型

    构造函数与实例 构造函数与普通函数的唯一区别:调用方式的不同,构造函数用new调用。 new的内部经历了什么? 创...

  • 对象和内置对象

    构造函数 new Object()new后面调用函数,我们称为构造函数。Object() 我们把他视为一个构造函数...

  • 构造函数与new

    构造函数 构造函数就是一个普通的函数,但是具有着自己的特征和用法。 上面代码中,People就是一个构造函数,为了...

  • javascript中面向对象编程-创建对象之工厂模式和构造函数

    创建对象 问题: 什么是构造函数? 构造函数与普通函数区别是什么? 使用new关键字时发生了什么? 构造函数中有返...

  • 一步步解析Promise

    new Promise(a函数) -> 构造函数(ParamFun=a函数)构造函数类运行a函数(),需要参数...

  • C++-02、命名空间、构造函数、析构函数

    命名空间 构造函数、析构函数 Java/KT的所谓的析构函数 new/delete 是一套 会调用构造函数 与 ...

  • JAVA clone与new之间比较

    clone不调用构造函数,new调用构造函数; clone通过深拷贝或浅拷贝复制原对象属性值,new在执行构造函数...

  • 作用域安全的构造函数

    作用域安全的构造函数 构造函数(非new操作)在构造函数中,使用new操作符的时候,函数的内部this指向创建的新...

  • 对象的创建方式及new关键字

    对象的创建方式 对象字面量 构造函数 系统自带的构造函数;比如new Object()、 new Array()、...

  • 随手记

    js中的new 构造函数其实就是一个能返回对象的函数 不使用new来创造一个构造函数: 使用new来创造一个构造函...

网友评论

      本文标题:构造函数与new

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