プログラミング日記

プログラミング、英語、アメリカ、Apple、自転車とか

JavaScriptのfor-each文

JavaScriptでfor-each文っぽくして実行したら、僕の予想と異なって少しハマった。

Javaでfor-eachをするコードを書いてみた。

public class Main {
	public static void main(String[] args) {
	    String fruits[] = {"Apple", "Orange", "Grape", "Lemon"};
	    for (String fruit: fruits) {
                System.out.println(fruit);
	    }
	}
}

-実行結果-
Apple
Orange
Grape
Lemon

Javaのfor文のfruit変数はStringの値である、なぜならコレクションのfruitsがString値だから。

でも同じことをJavaScriptでやろうとすると、

fruits = ['Apple', 'Orange', 'Grape', 'Lemon'];
for (var fruit in fruits) {
    console.log(fruit);
}

-実行結果-
0
1
2
3

どれもコレクションのインデックスが返される。
もしかしたら僕の勘違いかもしれないが。。

JavaScriptの継承について。

この前買った本を読んでいたら、

function initializeBase(derive, base, baseArgs) {
	base.apply(derive, baseArgs);
	for(var prop in base.prototype) {
		var proto = derive.constructor.prototype;
		if(!proto[prop]) {
			proto[prop] = base.prototype[prop];
		}
	}
}

var Member = function(firstName, lastName) {
	this.firstName = firstName;
	this.lastName = lastName;
};

Member.prototype.getName = function() {
	return this.firstName + ' ' + this.lastName;
};

var SpecialMember = function(firstName, lastName, role) {
	initializeBase(this, Member, [firstName, lastName]);
	this.role = role;
};

SpecialMember.prototype.isAdministrator = function() {
	return (this.role == 'Administrator');
};

var mem = new SpecialMember('Kotaro', 'Haynes', 'Administrator');
document.writeln('Name: ' + mem.getName() + '<br>');
document.writeln('Administrator: ' + mem.isAdministrator());

3行目の"derive.constructor.prototype"で、なぜconstructorが入るのかがいまいちよく分からない。
僕の頭の中ではconstructorとprototypeは全く違うものだと思っていたからだ。

iPad mini 2

先日、Apple Store in Shibuyaでずっと欲しかった物を買ってきた。

iPad miniである。

もともとお金がなかったのでiPad Airは眼中になかった。

最初は3を買うつもりでいたがなんと2の方が1万円くらいやすいことが判明!

スペックも3と比べて Touch idとゴールドカラーがないだけなんです!

ってことで、買ってしまいました。

f:id:kotaroscript:20150204213529j:plain

f:id:kotaroscript:20150204213612j:plain

詳解Swift

AppleSwiftとかいう言語を発表してから半年以上たち、今更感が漂う中、僕はSwiftの勉強を始めることにした。

こんな本を買ってきた。

Amazon.co.jp: 詳解 Swift: 荻原 剛志: 本

今までSwiftのリファレンスやドキュメントが少ないので、チャレンジできていなかったが詳解シリーズのSwift版が出たということで勉強を始めてみようと思う。

JavaScript 本格入門

今日はJavascriptの本を買ってきた。

もともとObjective-CとかでiOSのお絵かきアプリとか書いたり、プログラミング歴は1年ちょいある。

だから変な初心者を対象とした本よりも、ある程度の経験者を対象とした本がいいなと思っていた。

Amazon.co.jp: JavaScript本格入門 ~モダンスタイルによる基礎からAjax・jQueryまで: 山田 祥寛: 本

これを読んで頑張ろう。