<script>
//递归
function test(n) {
if (n == 1) {
return 1
}
console.log(n)
return n * test(n - 1)
}
console.log(test(3))
</script>
var obj={
obj1:{
obj2:{
obj3:{
obj4:{
name:'liujin'
}
}
}
}
}
function fn(o){
if(typeof o != 'object'){
return o;
}
for(var attr in o){
console.log(attr)
}
return fn(o[attr])
}
fn(obj)
结果:
obj1
obj2
obj3
obj4
name
var obj={
obj1:{
obj2:{
obj3:{
obj4:{
name:'liujin'
}
}
}
}
}
function fn(o){
if(typeof o != 'object'){
return o;
}
for(var attr in o){
console.log(o[attr])
}
return fn(o[attr])
}
fn(obj)
结果:
Object {obj2: Object}
Object {obj3: Object}
Object {obj4: Object}
Object {name: "liujin"}
liujin
对象的引用
var a={
m: 10
}
var b=a;
b.m=20;
alert(b.m) //20
alert(a.m) //20
对象的拷贝
<script>
var obj = {
a : { b : 10 }
};
/*function copy(obj){ //浅拷贝
var newObj = {};
for(var attr in obj){
newObj[attr] = obj[attr];
}
return newObj;
}*/
function deepCopy(obj){ //深拷贝
if(typeof obj != 'object'){
console.trace();
return obj;
}
var newObj = {};
for(var attr in obj){
newObj[attr] = deepCopy(obj[attr]);
}
return newObj;
}
var obj2 = deepCopy(obj);
obj2.a.b = 20;
alert(obj.a.b); //10
</script>
var deepCopy= function(source) {
var result={};
for (var key in source) {
result[key] = typeof source[key]===’object’? deepCoyp(source[key]): source[key];
}
return result;
}