JavaScript 原型<一>
万物都是对象,为何这么说?
1.先了解下js中类型的定义
2.类是对象的集合
3.JS中是以构造函数去模拟类,也就是 new 个 类 等价于 new 个构造函数
4.被new 出来的 对象 都有个 __proto__
,他的上级指向对应的实体
5.null和undefined没有__proto__
6.函数同时具有__proto__
和 prototype
7.JS推出的class也是对构造函数的一种包装
JavaScript的数据类型
- Number
- String
- Boolean
- null (空)
- undefined (未定义)
- Symbol
JavaScript的引用类型
- Object
- Array
- Function
两个关键名词登场 __proto__
和 prototype
Q1:是什么?
A1: proto 中文名 隐式原型 , prototype 中文名 原型;
Q2:做什么?
A2: proto 用来找父亲,比如定义一个类型为String的变量
- let wo = “airhang” //最常规定义
- let wo = new String(‘airhang’) //实例化一个String类
- wo.
__proto__
= String.prototype
//隐式原型指向对应的构造函数原型 - String作为函数他具备
__proto__
,作为构造函数他具备prototype
- 函数的
__proto__
= Function.prototype
- 构造函数的prototype也有一个
__proto__
,他指向Object - Object的原型是空,所以说 JS中万物都是对象
Q3: 例子
A1: 在浏览器控制台中定义一个上面的例子,展开看看就很好理解了