如何实现深度克隆
- 遍历对象
for(var prop in obj)
- 判断是不是原始值
typeof(obj[prop]) == object
- 判断引用值是数组还是对象
instanceof toString constructor
- 递归
function deepClone(origin,target){
var traget = target || {},
toStr = Object.prototype.toString,
arrStr = '[object Array]'
for(var prop in origin){
if(origin.hasOwnerProperty(origin[prop])){
if(typeof(origin[prop]==object){
target[prop] = toStr.call(origin[prop]) = arrStr ? [] : {}
deepClone(origin[prop], target[prop])
}else{
target[prop] = origin[prop]
}
}
}
return target
}
typeof返回数据类型有哪几种
- number
- string
- object
- undefined
- function
- boolean
','逗号运算符的作用
var num = (1,2)
console.log(num)