var b={}
var a=function(){
this.b=function(){
this.c="ccc"
}
var bb=this.b.call(b)
return bb//明明返回的是这个
}var aa=new a
//for(i in aa)alert(i)//明明return的bb,为什么返回的还是(new a)的引用(和return this是一样的),为什么啊?????
alert(b.c)//ie下不弹出ccc,ff下弹出ccc var a=function(){}
var b={}
a.b=function(){
this.c="ccc"
}
var bb=a.b.call(b)
alert(bb)//弹出undefined<-----这才是正确的嘛
var a=function(){
this.b=function(){
this.c="ccc"
}
var bb=this.b.call(b)
return bb//明明返回的是这个
}var aa=new a
//for(i in aa)alert(i)//明明return的bb,为什么返回的还是(new a)的引用(和return this是一样的),为什么啊?????
alert(b.c)//ie下不弹出ccc,ff下弹出ccc var a=function(){}
var b={}
a.b=function(){
this.c="ccc"
}
var bb=a.b.call(b)
alert(bb)//弹出undefined<-----这才是正确的嘛
var a=function(){
this.b=function(){
this.c="ccc"
}
var bb=this.b.call(b)
alert(typeof bb) //弹出undefined,要bb为Object才会返回bb,否则返回a的实例
return bb;
}
我晕~~~~~~~以前我都是认为返回的是return 的值的
var b
var a=function(){
var bb=b="ss"
return bb
}
var aa=new a
alert(aa)//弹出[object Object]
alert(b)//弹出ssvar b
var a=function(){
var bb=b=undefined
return bb
}
var aa=new a
alert(aa)//弹出[object Object]
alert(b)//弹出undefined看来我要大大的改下了(这个原理 牵涉的东西很多)
var b={bb:"bbbbbb"}
var a=function(){
return b
}
var aa=new a
alert(aa.bb)//弹出bbbbbb
alert(b.bb)//弹出bbbbbbvar a=function(){
return ["sss"]
}
var aa=new a
alert(aa)//弹出sss
return undefined;
}
alert(bbbb());
alert(new bbbb())结果(IE):undefined
[object Object];我想原因出在new上,因为new会为分配内存。所为第二个是一个对象。 只能想到这, 期待高手。
我还真没见过?
this.b=function(){
this.c="ccc"
}
var bb=this.b.call(b)
return bb;//明明返回的是这个 -> 在该函数执行在赋值运算中才发生
}var aa = new a;//aa是a的实例,这里是new实例化运算,并不是赋值运算for(i in aa){
alert(i);//a的实例的属性b
}</script>
看,是不是很清晰。