function A( ){
var a=10;
var b=20;
function B( ){
this.f=a;
}
return B;
}
var tt=A( );
var qq=new tt( );
alert(qq.f);
==========================================function A( ){
var a=10;
var b=20;
function B( ){
this.f=a;
}
return B;
}
var qq=new A( )( );
alert(qq.f);
为什么上面的可以,下面的不可以,我总感觉等价。
var a=10;
var b=20;
function B( ){
this.f=a;
}
return B;
}
var tt=A( );
var qq=new tt( );
alert(qq.f);
==========================================function A( ){
var a=10;
var b=20;
function B( ){
this.f=a;
}
return B;
}
var qq=new A( )( );
alert(qq.f);
为什么上面的可以,下面的不可以,我总感觉等价。
function A( ){
var a=10;
var b=20;
function B( ){
this.f=a;
}
return B;
}
var tt=A( );==>tt=function(){this.f=10}
var qq=new tt( );==>qq.f=10
alert(qq.f);
function A( ){
var a=10;
var b=20;
function B( ){
this.f=a;
}
return B;
}
var qq=new A( )( );==>var test=new A();qq=test();
alert(qq.f);
var a=10;
var b=20;
function B( ){
this.f=a;
}
return B;
}
var tt=A( );//执行结果为:tt是一个类,构造体:tt=function(){this.f=10}
var qq=new tt( );//执行结果为:qq为tt的一个实例,属性为:qq.f=10
alert(qq.f);function A( ){
var a=10;
var b=20;
function B( ){
this.f=a;
}
return B;
}
var qq=new A( )( );//分解这行代码
var test=new A();执行结果为test是一个类,构造体:function(){this.f=10}
qq=test();//执行一个构造体函数,结果为qq=undefined,假设把B改为 function B(){this.f=a;return 1},那么qq=1,也可以试一下var qq=new(new A())()
alert(qq.f);