stack区顺序存放,heap区随机存放
非对象(数字,字符串,布尔)都存在Stark,对象(数组,函数)都存在Heap。
=号总是把右边的东西复制到左边(不存在什么传值和传地址)复制的对象一改之前被复制的也改,因为他们都是一块内存。

Window
window变量和window对象是两个东西,window变量是一个容器,存放window对象的地址。window对象是heap里边的一坨数据。
window内存图

JS三座大山(this,原型,AJAX)
JS三座大山---原型
prototype是干什么用的?
打印出来看看
console.dir(window.Object.prototype)
每一个对象都有一个隐藏属性,指向原型(对象),这个隐藏属性封装了toString等等,方便调用,不用每次创建对象时都重写toString这些。
这个隐藏属性叫proto
prototype和proto的区别?
都存着原型的地址,只不过prototype挂在函数上,proto挂在每个新生成的对象上。
JS 引擎的功能有
- 编译 JS 代码为字节码或者机器码
- 优化字节码或者机器码
- 执行字节码或者机器码
- 垃圾回收
Object.prototype 保存了一个对象的地址,这个对象包含了所有普通对象的共有属性,叫做对象的原型
Array.prototype 保存了一个对象的地址,这个对象包含了是所有数组的共有属性,叫做数组的原型
Function.prototype 保存了一个对象的地址,这个对象包含了是所有函数的共有属性,叫做函数的原型
每个对象都有一个隐藏属性,用来保存其原型的地址,这个隐藏属性的名字叫做 proto
网友评论