function MyObject1(formalParameter){
alert("MyObject1");
this.testNumber = formalParameter;
//1
this.toString= function(){
alert("MyObject1:"+this.testNumber);
};
}
function MyObject2(formalParameter){
alert("MyObject2");
this.testString = formalParameter;
//2
this.toString= function(){
alert("MyObject2:"+this.testString);
};
}
MyObject2.prototype = new MyObject1( 8 );
var objectRef = new MyObject2( "String_Value" );
alert(objectRef);
结果为
MyObject1
MyObject2
String_Value
undefined(为什么会出现?)
注释2以下结果为8
注释1和2以下结果为[object Object]
alert(MyObject2); 调用了Function.prototype.toString
var ....=(function() {return .....})(); 如果没有return,()()就没有必要
()()返回执行的结果
参考文章 http://www.cn-cuckoo.com/wordpress/wp-content/uploads/2007/08/JavaScriptClosures.html