潜入理解原型继承

全局对象

windows的属性

  1. 共有的属性(ECMA规定)
  • parseInt、parseFloat、number、string、object、window.setTimeout(window自带的api)
  1. 私有的属性(浏览器的自定义)
  • alert、prompt、confirm、console.log()、document/Dom()w3c、history(浏览器)Bom
简单类型和对象的区别

Number

var n = 1 
n.toString()
​
charAt() charCodeat() 取对象第几位数据
​
.trim()去掉字符串的前后的空格 
.concat()连接两个字符串
.slice() 切取
var s = 'hello'  s.slice(0,3) 
>>>>>.  'hel'
.replace('','') 替换数据
.split  正则

数据类型中的强记。 Again

七种数据类新型,5个falsy值 还有就是内存图 基础中的基础

公用属性的原型链

内存图的解析对于属性和对象的关系了解颇为重要

声明一个新的对象时候,系统会自带的进行 proto原型的继承

__proto__;;隐藏属性

js对象的结构就是一棵树

var  a = {}
a.__proto__ === Object.prototype
 对象的原型继承就是来自对象类型本身的自带的属性
>>>> true
​
var n = new Number(1)
n.__proto__ === Number.prototype
n.__proto__.__proto__ === Object.prototype
​
根节点的object.prototype 为null

树的根节点是 object。然后跟节点下面的字节点对应的 string.prototype、number.prototype、.....

Js引擎刷新的时候就会把原型继承树画好,把所有的对应的原型api绑定

声明一个对象时,也会把Object的proto。绑定

Number.prototype  这是在js引擎刷新的时候引用 防止内存回收
n.__proto__   这是在声明新的对象的时候,进行引用,饭后对对象进行操作的
​
特殊的Function 原型继承
函数__proto__ === Function.prototype

你可能感兴趣的:(javascript)