断断续续读了两个多月,可能是单字耗时最长的一本书,也是逻辑快感收益最大的一本书。几个月前,美团打车上线上海,迅速拿下30%的市场份额,舆论一片哗然,认为新秀公司TMD有着非常...
断断续续读了两个多月,可能是单字耗时最长的一本书,也是逻辑快感收益最大的一本书。几个月前,美团打车上线上海,迅速拿下30%的市场份额,舆论一片哗然,认为新秀公司TMD有着非常...
今天早晨有点不高兴,一是因为今天早上6点到晚上11点停电,也停水,早晨起来没有热水喝,只喝了一点温水,用了囤的水洗漱,心理很压抑;二是因为没睡醒;三是因为周一综合症;四是手机...
export正确用法 输出变量 输出多个变量 输出函数 输出别名 export错误用法 import用法 需要注意的是 import是在代码编辑阶段执行的 导入变量 导入别名...
var extend = function() {
// 对象类型判断
var isObj = function(x) {
var B1 = x instanceof Array
var B2 = x instanceof Object
return !B1 && B2
}
// 数组类型判断
var isArr = function(x) {
return x instanceof Array
}
// 对象、数组的深拷贝
var deepCopy = function(x) {
return JSON.parse(JSON.stringify(x))
}
var len = arguments.length
switch(len) {
case 0: return {}
case 1: return arguments[0]
default: {
var obj = isObj(arguments[0]) ? arguments[0] : {}
for(var i=1; i<len; i++) {
var item = arguments[i]
if (isObj(item)) {
for (var k in item) {
var val = item[k]
if (isObj(val)) {
obj[k] = extend(obj[k], val)
} else if(isArr(val)) {
obj[k] = deepCopy(val)
} else {
obj[k] = val
}
}
}
}
return obj
}
}
}
使用instanceof进行变量类型判断
将arguments中的非对象变量丢弃
对对象类型的变量进行深扩展(对象内的数组类型会被深拷贝但不会进行扩展)
当第一个参数为对象类型时,该变量源会被修改,
当第一个参数为非对象时,该变量源不会被修改,而是创建一个新的对象进行扩展操作。
如有问题,欢迎指正。
Javascript扩展对象extend实现jQuery的$.extend方法是我们在开发中经常用到的方法,用于合并若干个对象,且支持深度拷贝。 最常见的一个使用场景是参数的合并,比如我们要做一个显示对话框的组件,接收...
问题: 1.使用过gulp、webpack吗?有没有重写过他们 2.你们公司是如何区分开发环境,测试环境的 3.nginx都可以用来干什么 4.反向代理是什么 5.用的什么版...
吃过饭后会写写毛笔字、或者跑跑步消消食。晚上还会看看电视。