- 博客(7)
- 收藏
- 关注
原创 创建对象的几种方式
在javascript中,所有对象的创建都是基于原型的。在js中任意的对象都有一个内部属性[[Prototype]]。这个属性的值只能是object或者是null。对象有这个内部属性的目的就是为了实现继承,或者更明确的说实现属性(方法)的复用。所以说创建一个对象的关键就是确定[[prototype]]的值。一般情况下,如果创建了一个对象什么属性也没有那么这个对象的原型就是Object.protot
2017-04-11 18:25:20 4963
原创 里氏替换原则(LSP)
一、为什么需要LSP先看一个例子,有一个下载类,需要将要下载的file 保存在硬盘中。 <script>//硬盘类function HardDisk () { this.save = function (file) { console.log('硬盘正字保存 '+file); }}//下载类function Download ...
2017-04-09 19:33:21 638
原创 [] == false,和!![] == false结果为什么不一样?探究 == 本质
console.log([] == false, !![] == false);// true falseconsole.log([] === false, !![] === false);// false falseconsole.log([] == []);// falsevar a = [];console.log(a == !!a);//fasle先解析[] == f
2017-04-08 16:38:29 10566
原创 webkit资源加载
在浏览器整个渲染过程中,资源获取这一过程无疑是最消耗时间的,同时浏览器内核也通过了各种方式去减少事件,比如资源加载多线程、并发下载资源、DNS预处理、缓存资源、缓存网络请求等。下面介绍从用户输入URL到得到资源发生了什么,但是这个过程也是粗略的解读,对于详细的过程以及高性能的部分要去,相信《http 权威指南》可能会给你满意的答案。 在浏览器中对于每一种资源比如HTML、js、CSS、...
2017-04-07 18:16:03 974
原创 webkit内核渲染过程概述
由于资源加载过程和网络模块都可以多并发多线程的执行,所以可以请多个URL没有必要等到上一次url执行完毕之后在处理下一个URL,但即便如此也是需要一个url缓存的以便于应对多并发的情况。经过资源加载和网络模块之后,由于在整个渲染过程中,这个模块是非常慢的,只至于能把这一部分的优化做好可能对整个网络提升至关重要。当得到用户输入的url之后,就会请求资源加载模块进行资源加载,同时这个模块依
2017-04-07 16:04:38 1138
原创 我是这么理解设计和模式的
以下完全是我个人的理解,毕竟我项目经验不是很丰富,未免对一些概念理解有偏差,请多多斧正。 现代一个软件开发无论是遵循敏捷开发也好都是不断迭代的,之所以迭代是因为在开发过程中出现了很多问题,但是最重要的一个因素就是需求的不断变化,这个需求可能是增加的新功能或者是原来需求行为的改变。 在软件开发过程中如何保证在面向对象设计中更好的去迎合这种需求不断变化因素呢?也就是在...
2017-04-07 12:32:25 370
原创 使用var、let、const声明变量
一、使用var声明变量1、使用方法通过var关键字可以一次声明一个变量或者多个变量,同时可以为声明的变量赋初始值。但是变量的声明和初始值并不是在同一时间执行的,在执行初始值之前这些声明的变量的值为undefined。'use strict';var x = 12, y = x;2、声明变量与非声明变量区别变量声明定义的时候无论出现在代码的什么位置,都会在执行代码之前,将声明的变量添加到当前
2017-04-05 21:56:44 1941
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人