JS-原型链

一 全局对象Window
1ECMAScript 规定全局对象叫做 global,但是浏览器把 window 作为全局对象(浏览器先存在的)
2 window 就是一个哈希表,有很多属性。window 的属性就是全局变量。
3 window下面的属性分两种:
一种是 ECMAScript 规定的(本节课重点)
global.parseInt
global.parseFloat
global.Number
global.String
global.Boolean
global.Object

一种是浏览器自己加的属性(只有chrome有,或者只有firefox有)
window.alert(弹框提示)
window.prompt(用户填写)
window.comfirm(用户确认)
window.console.log(让用户打印东西)
window.console.dir
window.document
window.document.createElement
window.document.getElementById

二 全局函数
1 简单类型与对象的区别

Number(’1’):将字符1变成数字。
Var n = new Number(1) : 接受一个数字1,并将1包装成对象,然后用对象的属性value of获取数值。
加new 就是代表生成对象
第一种是基本类型,第二种是对象的操作。
基本类型也可以调用属性,是因为有temp存在。

熟记各种API

三 公用的属性藏在哪里(原型链)

1_ _proto _ 属于隐藏的key,用 _proto _ _ 指向共有的属性

2 原型链就是利用_ proto _将节点串联起来。

3 原型就是代表了共有属性。

var o1 = {}

O1._ proto _ === object.prototype

var n1 = new Number(1)

n1._ proto _ === Nunber.prototype

n1._ proto . proto _ === Object.prototype

Prototype是浏览器准备好的,_ proto _是用来引用他的

4

String.prototype 是String的公有属性的引用
s._ proto _ 是String的公有属性的引用

5
var ___A____ = new B

A:类型是对象
B: 类型是函数

本节内容的核心
对象._ _ prototype_ _ === 函数.protype

函数.protype 这部分也是一个对象,因为有哈希。在JS中,要么是对象,要么不是对象。

Function需要特别注意

Function._ _ prototype_ _ === Function.protype

纠正:

视频中画图的时候认为 Object.proto === Object.prototype ,实际上应该是 Object.proto === Function.prototype,因为 Function 是 Object 的构造函数。

视频中画图时认为 Object.prototype.proto 指向自己,实际上应该是指向 null

你可能感兴趣的:(JS-原型链)