1、 函数调用自身
今天又遇到了一道笔试题,啊!就那样错了~
function fn(m,n){
console.log(n);
return {
fn:function(f){
return fn(f,m);
}
}
}
var b = fn(0).fn(1).fn(2);
输出啥?
没错,输出的是:undefined、0、1
其实题目还是不难,想想还是就明白了,第一个传入的参数是0,形参m就代表0,而形参n,没传入值为undefined;最后返回一个对象,再调用此对象的fn传入形参f为1,而形参m即为0,再调用此函数,则输出0,同理最后输出1。
2、‘=’赋值
var a = new Object();
a.val = 1;
b = a;
b.val = 2;
alert(a.val === b.val);
输出:true
原因:对象等号赋值是地址引用,修改其中一个,另一个的值也会随之改变,也就是说,a、b他们指向同一个地址,无论其中一个怎么变化,它们的内容始终相等!