原型链

146 阅读3分钟

     访问一个对象的属性时,先在基本属性中查找,如果没有,再沿着_proto_这个链向上找,这就是原型链。这个对象的_proto_等于这个对象构造方法的prototype。这个对象的构造函数的prototype是一个对象。这个对象是被Object()创建出来的。(Object()是JS内部定义好的。)所以它的_proto_就等于Object.prototype。Object.prototype等于null,到此就是原型链的终结。

:函数可以是一个普通函数也可以作为构造函数去创建对象。当这个时候构造函数就和Object()函数是一个作用:作为构造函数去生成对象。

     普通构造函数和Object一样的,它既是函数也是对象。它的_proto_指向与Function.prototype。这也是JS内部定义好的。Function._proto_指向Function.prototype。这里是一个循环引用。Function.prototype也是一个对象,他的__proto__指向于Object.prototype。Object.prototype等于null。走到原型链的终结。

优雅降级和渐进增强

1、渐进增强

       一开始就针对低版本浏览器进行构建页面,完成基本的功能,然后再针对高级浏览器进行效果、交互、追加功能达到更好的的体验。

2、优雅降级

       一开始就构建站点的完整功能,然后针对浏览器测试和修复。比如一开始使用css3的特性构建了一个应用,然后逐步针对各大浏览器进行hack,使其可以在低版本浏览器上正常浏览。

3、二者区别

       优雅降级和渐进增强只是看待同种事物的两种观点。优雅降级和渐进增强都关注于同一网站在不同设备里不同浏览器下的表现程度。关键的区别则在于它们各自关注于何处,以及这种关注如何影响工作的流程。

(1)优雅降级观点认为应该针对那些最高级、最完善的浏览器来设计网站。而将那些被认为“过时”或有功能缺失的浏览器下的测试工作安排在开发周期的最后阶段,并把测试对象限定为主流浏览器(如 IE、Mozilla 等)的前一个版本。

(2)渐进增强观点则认为应关注于内容本身。

响应式布局和自适应布局的区别

1、响应式布局

       响应式布局就是实现不同屏幕分辨率的终端上浏览网页的不同展示方式。通过响应式设计能使网站在手机和平板电脑上有更好的浏览阅读体验。换句话说就是一个网站能够兼容多个终端,而不是为了每一个终端做一个特定的版本。

它可以自动识别屏幕宽度、并做出相应调整的网页设计,布局和展示的内容可能会有所变动。

2、自适应式布局

      自适应是为了解决如何才能在不同大小的设备上呈现同样的网页,让同一张网页自动适应不同大小的屏幕,根据屏幕宽度,自动调整网页内容大小,但是无论怎样,他们主体的内容和布局是没有变的。自适应还是暴露出一个问题,如果屏幕太小,即使网页能够根据屏幕大小进行适配,但是会感觉在小屏幕上查看,内容过于拥挤。