JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://getfirebug.com/firebug-lite-debug.js"></script>
<!-- この枠内は無視してください -->
<h4><strong><a href="http://www.oreilly.co.jp/books/9784873116211" target="_blank">開眼!JavaScript</a> サンプルコード</strong></h4>
<p>スクリプトはページロード時に実行されます。</p><p>再度実行する場合や「JavaScript」ボックス内のスクリプトを修正して実行する場合は上部のナビゲーションバーにある「Run」をクリックしてください。</p><p>アウトプットはページ右下のFirebug Liteコンソールに出力されます。</p>
<a href="http://shop.oreilly.com/product/0636920027713.do" target="_blank">原著:JavaScript Enlightenment</a>
JavaScript
/* この例はjsFiddleでは正常に動作しません。Webブラウザのコンソールで実行してください。*/
var Person = function(x){
if(x) { this.fullName = x; };
};
Person.prototype.whatIsMyFullName = function() {
return this.fullName; // thisはPerson()ではなく、Person()から生成されたインスタンスを参照する
}
var cody = new Person('cody lindley');
var lisa = new Person('lisa lindley');
// プロトタイプ継承されたwhatIsMyFullName()メソッドを呼ぶ
console.log(cody.whatIsMyFullName(),lisa.whatIsMyFullName());
/* 次の例では、デフォルトのfullNameの値を設定する。プロトタイプチェーンが有効なので、
インスタンスがfullNameプロパティを持っていない場合はプロトタイプチェーンをたどる。
Object.prototypeにfullNameプロパティを設定し、PersonとObject両方のprototypeにfullNameプロパティを持つ。Notesを参照 */
Object.prototype.fullName = 'John Doe';
var john = new Person(); // 引数が渡されていないのでfullNameプロパティは設定されない
console.log(john.whatIsMyFullName()); // プロトタイプチェーンをたどって、'John Doe'を出力