一 全局对象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