JavaScriptのプロトタイプチェインについて
http://www.slideshare.net/yuka2py/javascript-23768378 を見た感想。
JavaScripのプロトタイプチェインって他のオブジェクト指向言語(JavaやC++)における継承だと思ってたけど、thisの参照が全く違うみたい。 http://www.slideshare.net/yuka2py/javascript-23768378/40
var objA = { name : 'Yome'; say : function () { alert('I LOVE ' + this.name); } }; var objB = { name : 'Nicole' }; objB.__proto__ = objA; var objC = { }; objC.__proto__ = objB; objC.say();
では"I LOVE Nicole"と表示されるらしい。
一方Javaだと
class A { public String name = "Yome"; public void say() { System.out.println("I LOVE " + this.name); } } class B extends A { public String name = "Nicole"; } public class C extends B { } public class Test { public static void main(String[] args) { C x = new C(); x.say(); } }
実行結果は"I LOVE YOME"となる。
スライドでは「継承」とは表現されていないがプロトタイプチェーンをオブジェクト指向の継承として説明しているサイトはいくつかある。 JavaScriptでオブジェクト指向するときはその辺の思考回路を他の言語から切り替えないと泥沼にハマりそう・・・
Markdown記法
Markdown記法を試してみる
参考URL
書けるかな
- 書けてるかな?
- 書けてるよね?
- 書けてるね!
慣れてきたのコードとか貼ってみる
コードをバッククォート3つで囲む。
C言語
#include<stdio.h> int main(void) { printf("Hello world!"); return(0); }
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello world!"); } }
これは便利!