zl程序教程

您现在的位置是:首页 >  前端

当前栏目

《JavaScript面向对象精要》——1.6 鉴别引用类型

JavaScript 类型 引用 面向对象 1.6 精要
2023-09-11 14:17:33 时间

本节书摘来自异步社区《JavaScript面向对象精要》一书中的第1章,第1.6节,作者:【美】Nicholas C. Zakas 译者: 胡世杰 更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.6 鉴别引用类型

函数是最容易鉴别的引用类型,因为对函数使用typeof操作符时,返回值是“function”。

function reflect(value) {

 return value;

console.log(typeof reflect); // "function"

对其他引用类型的鉴别则较为棘手,因为对于所有非函数的引用类型,typeof返回“object”。在处理很多不同类型的时候这帮不上什么忙。为了更方便地鉴别引用类型,可以使用JavaScript的instanceof操作符。

instanceof操作符以一个对象和一个构造函数为参数。如果对象是构造函数所指定的类型的一个实例,instanceof返回true;否则返回false,如下例。

var items = [];

var object = {};

function reflect(value) {

 return value;

console.log(items instanceof Array); // true

console.log(object instanceof Object); // true

console.log(reflect instanceof Function); // true

本例用instanceof和构造函数测试了几个值,它们真正的类型都被正确鉴别出来(即使该构造函数并没有被用于创建该变量)。

instanceof操作符可鉴别继承类型。这意味着所有对象都是Object的实例,因为所有引用类型都继承自Object。

作为示范,下列代码用instanceof检查了之前那3种引用。

var items = [];

var object = {};

function reflect(value) {

 return value;

console.log(items instanceof Array); // true

console.log(items instanceof Object); // true

console.log(object instanceof Object); // true

console.log(object instanceof Array); // false

console.log(reflect instanceof Function); // true

console.log(reflect instanceof Object); // true

每种引用类型的对象都被正确鉴别为Object的实例。


【JavaScript】26_面向对象——继承 # 8、继承 - 可以通过extends关键来完成继承 时,就相当于将另一个类中的代码复制到了当前类中(简单理解) - 继承发生时,被继承的类称为 父类(超类),继承的类称为 子类 的代码,并且可以在不修改一个类的前提对其进行扩展 ​ 封装 安全性 ​ 继承 扩展性 ​ 多态 灵活性 ```html script class Animal{ constructor(name){ this.n
【JavaScript】25_面向对象——封装 # 6、封装 面向对象的特点: 封装、继承和多态 - 对象就是一个用来存储不同属性的容器 - 对象不仅存储属性,还要负责数据的安全 - 直接添加到对象中的属性,并不安全,因为它们可以被任意的修改 - 如何确保数据的安全: 1.私有化数据 - 将需要保护的数据设置为私有,只能在类内部使用 2.提供setter和getter方法来开放对数据的操作 - 属性设置私有,通过getter setter方法操作属性带来的好处 1. 可以控制属性的读写权限 2. 可以在方法中对属性的值进行验证 - 封装主要用来保证数据的安全 - 实现封装的方式
【JavaScript】24_面向对象中的方法和构造函数 # 4、方法 ```html script class Person{ name = 孙悟空 // sayHello = function(){ // } // 添加方法的一种方式 sayHello(){ console.log( 大家好,我是 + this.name) } // 添加方法(实例方法) 实例方法中this就是当前实例 static test
【JavaScript】22_ 面向对象 # 1、面向对象 面向对象编程(OOP) 1. 程序是干嘛的? - 程序就是对现实世界的抽象(照片就是对人的抽象) 2. 对象是干嘛的? - 一个事物抽象到程序中后就变成了对象 - 在程序的世界中,一切皆对象 3. 面向对象的编程 - 面向对象的编程指,程序中的所有操作都是通过对象来完成 - 做任何事情之前都需要先找到它的对象,然后通过对象来完成各种操作
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。