前言
写本《JavaScript简餐》系列文章的目的是记录在阅读学习《JavaScript高级程序设计(第4版)》一书时出现的各个知识点。虽是对读书的笔记和总结,但是希望它轻量、简洁、犀利,不会引起阅读疲劳,可以在碎片化时间和闲暇之余轻巧地沐浴一下知识点。每篇文章只针对一个小部分进行讲解式的梳理,来达到个人复习总结和分享知识的目的。
一、什么是盗用构造函数?
还记得上一篇文章中提到了原型链继承中会出现的两个问题:对引用值的误修改以及子类型实例化时无法给父类构造函数传参。为了解决这些问题,一种叫作“盗用构造函数”(constructor stealing)的技术在开发社区流行了起来。(也称作“对象伪装”或“经典继承”)。基本思路很简单:在子类构造函数中调用父类构造函数。毕竟函数就是在特定上下文中执行代码的简单对象,所以可以使用call()和apply()方法以新创建的对象为上下文执行构造函数。话不多说,直接上代码。二、使用实例
function Person () {
this.name = {
firstName: 'San',
lastName: 'Zhang'
};
this.age = 20;
this.sayName = function ()