发表于: 2017-04-23 22:07:37
1 1278
今天完成的事情:
学习原型链:JavaScript的每个对象都继承另一个对象,后者称为“原型”(prototype)对象。
只有null除外,它没有自己的原型对象。 原型对象上的所有属性和方法,都能被派生对象共享。这就是JavaScript继承机制的基本设计。
通过构造函数生成实例对象时,会自动为实例对象分配原型对象。每一个构造函数都有一个prototype属性,这个属性就是实例对象的原型对象。
原型对象的作用,就是定义所有实例对象共享的属性和方法。这也是它被称为原型对象的含义,而实例对象可以视作从原型对象衍生出来的子对象。JS中所有对象都有自己的原型对象。
“原型链”的作用是,读取对象的某个属性时,JavaScript引擎先寻找对象本身的属性,如果找不到,就到它的原型去找,如果还是找不到,就到原型的原型去找。如果直到最顶层的Object.prototype还是找不到,则返回undefined。
获取实例对象obj的原型对象,有三种方法 1. obj.__proto__ 2. obj.constructor.prototype 3. Object.getPrototypeOf(obj) 上面三种方法之中,前两种都不是很可靠。最新的ES6标准规定,__proto__属性只有浏览器才需要部署,其他环境可以不部署。而obj.constructor.prototype在手动改变原型对象时,可能会失效。
在网上找到的关于“Cookie、sessionStorage、localStorage的区别”:
SessionStorage 和 localStorage 是HTML5 storage API 提供的, 可以把数据保存在本地,避免了数据在浏览器和服务器之间不必要的通信。
sessionStorage,localStorage, cookie 都是在浏览器存储的数据。
不同:
cookie数据始终在同源http中携带,即使不需要,也会在浏览器和服务器间来回传递。Storage只存在本地。
cookie数据有路径概念,可以限制cookie只能在某路径下。
大小不同
cookie:4k Storage:5M
有效期不同
sessionStorage: 仅在当前浏览器关闭前有效
localStorage:始终有效
cookie:过期之前有效
作用域不同
sessionStorage在打开的不同浏览器窗口不共享,即使同一页面
localStorage 在同源页面共享
cookie 同源页面共享
明天要做的事情:
深入理解js函数之间的运行逻辑,把之前知其然不知其所以然的函数过一遍。
遇到的问题:
暂无。
收获:
理解原理之后头脑会更清晰一些,知道它的运行原理对于理解为什么会有bug以及如何处理修复有所助益。
评论