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 ( '小明' , '男' , ) ; console . log ( person . name ) ;
这样就能理解为什么使用 new 操作符可以 生成 对象了。
这个机制也是面试的高频题。
3. 小结
构造 函数 用于 生成 对象,理解构造 函数 和原型机制非常重要,不但是面试中的高频题,也可以提升编写高质量、可复用的 代码 的能力。
JavaScript instanceof ? ?JavaScript 原型声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did92449