new 运算符与构造函数

 

当一个函数被 new 运算符调用的时候,这个函数就会被称为构造函数。

 

任何函数都能被 new 运算符调用,但是一般会从设计上将一个函数考虑为构造函数,提供给 new 运算符调用。

 

function Human(name, gender) {

  this.name = name;

  this.gender = gender;

}

 

var human = new Human();

代码块

预览

复制

1. 构造函数的作用

构造函数的主要作用是用于生成对象。

 

有其他面向对象语言开发经验的同学可能会觉得使用 new 运算符的语法和创建类的示例很像,其实本质是不一样的。

 

结合原型的特性,在 JavaScript 中也能实现类似于类的一套机制。

 

关于构造函数和原型的处理关系,原型章节已经有详细介绍,具体内容可以参考原型章节。

 

2. new 运算符的运算机制

使用 new 运算符调用函数的时,背后有一套运行机制,这套机制说明了构造函数是怎么产生对象的。

 

当 new 运算符调用函数时,大致会进行以下几个操作:

 

创建一个空对象

将函数的this指向这个空对象

执行函数

如果函数没有指定返回值,则直接返回 this(一开始创建的空对象),否则返回指定返回值

function Person(name, gender, age) {

  this.name = name;

  this.gender = gender;

  this.age = age;

}

 

var person = new Person('小明', '男', 17);

 

console.log(person.name);

代码块

预览

复制

这样就能理解为什么使用 new 操作符可以生成对象了。

 

这个机制也是面试的高频题。

 

3. 小结

构造函数用于生成对象,理解构造函数和原型机制非常重要,不但是面试中的高频题,也可以提升编写高质量、可复用的代码的能力。

 

JavaScript new操作符和构造函数

50/80

目录

书签

收藏

A

大小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值