JavaScriptでのプロトタイプ2


[size=medium;]シンプルなプロトタイプ:[/size]
                function person(){}		person.prototype={				name:"zhangsan",				age:33,				sayhello:function(){					alert("hello,i'm "+this.name);				}		}		var person = new person();		person.sayhello();  //hello,i'm zhangsan 		alert(person instanceof object);//true		alert(person instanceof person);//true		alert(person.constructor ==person);//false		alert(person.constructor==object);//true
 
[size=medium;]1、[/size][size=medium;] 簡潔なプロトタイプモードを使用する場合、constructorプロパティはperson関数を指しません.overrideのデフォルトのプロトタイプモードのためです.新しいプロトタイプモードのconstructorはobject関数をデフォルトで指す.
[size=medium;]2、原型関数全体を書くことから
function person(){}		var person = new person();		person.prototype={				name:"zhangsan",				age:33,				sayhello:function(){					alert("hello,i'm "+this.name);				}		}		person.sayhello();  //  person.sayhello is not a function
 
function person(){}		person.prototype={				name:"zhangsan",				age:33,				sayhello:function(){					alert("hello,i'm "+this.name);				}		}		var person = new person();		person.sayhello();  //hello,i'm zhangsan
[size=medium;]上の2つのコード:異なる点はpersonインスタンスを構築する位置が異なるだけで、異なる結果が現れ、その真相を図で説明することができます.[/size]

[size=medium;]第1段エラーコードの図解[/size]

[size=medium;]2段目のコードの図解[/size]