Open thinkuncle opened 8 years ago
开启严格模式以后,一些js糟糕的特性都会被禁用,比如不能用with,也不能在意外的情况下给全局变量赋值。严格模式下的eval函数的行为和非严格模式的也不相同。具体题主可以去查阅一下严格模式到底限制了多少内容
浅复制差不多类似java的引用传递,操作复制的对象同步也会操作源对象。
var a={"param1":1};
var b = a;
console.log(a);
b.param1 = 2;
console.log(a);
类似java中的值复制, 操作复制的对象与源对象完全是2个对象,互不影响。
var a={"param1":1};
var b = angular.copy(a);;
console.log(a);
b.param1 = 2;
console.log(a);
var cloneObj = function(obj){
var str, newobj = obj.constructor === Array ? [] : {};
if(typeof obj !== 'object'){
return;
} else if(window.JSON){
str = JSON.stringify(obj), //系列化对象
newobj = JSON.parse(str); //还原
} else {
for(var i in obj){
newobj[i] = typeof obj[i] === 'object' ?
cloneObj(obj[i]) : obj[i];
}
}
return newobj;
};
跟着9张思维导图学习Javascript