发表于: 2017-04-23 22:07:37

1 1281



今天完成的事情:

学习原型链: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以及如何处理修复有所助益。


返回列表 返回列表
评论

    分享到