次のようにコードコードをコピーします。
<mce:script type = "text/javascript"> <! -
/*
各オブジェクトインスタンスには、メンバーがそのインスタンスを指すために使用されるプロトタイプ(プロトタイプ)があります(一時的に親オブジェクトと呼ばれます)
父親のプロトタイプ間の関係を[プロトタイプチェーンプロトタイプChian]と指摘します
プロトタイプには父親がいます。
JavaScriptでは、「すべてがオブジェクトであり、関数は最初のタイプです。」
関数とオブジェクトは関数のインスタンスです。
functionの父親のプロトタイプは、機能のプロトタイプ、function.prototypeの父プロトタイプを指します。
Objectのプロトタイプは、関数のプロトタイプも指しています。プロトタイプはすべての親プロトタイプの最上層です
Spidermonkeyエンジンでは、親プロトタイプにアクセスできます__Proto__
*/
function.prototype.hi = function(){alert( 'hi function');}
object.prototype.hi = function(){alert( 'hi object');}
var a = function(){
this.txt = "a";
}
A.Prototype = {
say:function(){alert( 'a');}
}
Alert(intanceof function);
アラート(a .__ loto___ === function.prototype);
Alert(function instanceof object);
alert(function .__ loto__ === fu conction.prototype);
alert(function.prototype .__ loto__ === object.prototype);
alert(object .__ proto__ === prototype);
Alert(Object.Prototype .__ Loto __);
Alert(A.prototype instanceof object); // Aのプロトタイプもオブジェクトです
Alert(A.Prototype .__ Loto__ === Object.Prototype);
var a = function(){};
a.prototype = new a();
a.prototype.say = function(){
アラート( 'A');
}
Alert(function); // aは関数のインスタンスです
アラート(a .__ propo___ === function.prototype);
Alert(A.Prototype Instance of a); // Aのプロトタイプはaのインスタンスです
Alert(A.Prototype .__ Loto__ === A.Prototype);
var ia = new a();
var ib = new a(); ibはa、ib .__ proto__ ===
ia.hi();
/*
IA自体にはHIメソッドがありません(構造にはありませんが、私はそれを定義していません)、
だから、ia .__ proto__、つまりA.prototypeを探してください。
a.prototype .__ loto__、つまりA.prototypeを探してください。まだ見つかりませんでした。
a.prototype .___ loto__を見つけ続けます。
出力:こんにちはオブジェクト
*/
ib.hi();
/*
IB自体にはHIメソッドがありません(構造にはありませんが、私はそれを定義していません)、
Ib .__ Loto__、つまりA.prototypeを見つけますが、それでも見つかりません。
a.prototype .___ loto__を見つけ続けます。
出力:こんにちはオブジェクト
*/
a.hi();
/*
A自体にはHIメソッドがありません(構造にはありませんが、私はそれを定義していません)、
だから、function.prototypeの両方を見つけてください。
出力:こんにちは機能
*/
ia.say();
/*
ia自体には格言がありません(構造にはいいえ、私はそれを定義していません)、
だからIa .__ proto__を見つけてください。
したがって、ここにa.prototype.sayがあります
出力:a
*/
ib.say();
/*
IB自体には発言権がありません(構造にはいいえ、私はそれを定義していません)、
だからIb .__ Loto____、それはA.prototype、すごい、私は言ったので、私はそれを呼んで探すのをやめます
したがって、ここにa.prototype.sayがあります
出力:a
*/
ia.bad();
/*
IA自体には悪い方法がありません(構造にはありませんが、私はそれを定義していません)、
だから、ia .__ proto__、つまりA.prototypeを探してください。
a.prototype .__ loto__、つまりA.prototypeを探してください。まだ見つかりませんでした。
a.prototype .__ loto__、それはobject.prototypeを見つけ続けます。
戻りエラー、IA.BADは関数ではありません
*/
// - > </mce:スクリプト>
</script>
サイモンの修正意見に感謝します!すべてのインスタンスは、属性メソッドを検索する際に独自のプロトタイプを見つけません(インスタンスのプロトタイプはプロトタイプチェーンにありません。属性としてのみ使用できます)!