だいたいあってる

最近記憶力がやばいのでメモ代わり

JavaScriptのプロトタイプチェインについて

http://www.slideshare.net/yuka2py/javascript-23768378 を見た感想。

JavaScripのプロトタイプチェインって他のオブジェクト指向言語(JavaC++)における継承だと思ってたけど、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);
}

Java

public class HelloWorld {
  public static void main(String[] args) {

    System.out.println("Hello world!");

  }
}

これは便利!