Javascriptでプロトタイプを継承するには function newClass(){ superClass.apply(this, arguments); } newClass.prototype = new superClass(); // superClassを継承 var newObject = new newClass(); console.log(newObject instanceof superClass); // true こんなコードを書けばいいわけだけど、 これだとsuperClassオブジェクトを作っているところがスマートじゃない。 newClass.prototype = superClass.prototype; // superClassを継承 これだと余計なオブジェクトはつくらないけど、 newClassのprototypeを拡張するとsuperClas
function Child() { this.name = "child"; this.favorite = "popsicle"; } (function(methods) { methods.apply/*to*/(Child.prototype); }) (function() { this.jump = function() { alert("Jumps, jump, jumpoo!!"); }; this.sayOwnFavorite = function() { alert("I like "+this.favorite+"!"); }; }); この文脈なら apply がしっくりくるとおもう。 <参考> http://d.hatena.ne.jp/iskwn/20091215/1260828978
ガール・ミーツ・スーパーガール 今年はサンマがたくさん獲れているらしい。 どのスーパーに行っても今が旬だよ、今日とかめっちゃお買い得だよ、みたいな感じで売られている。実際キラキラしていておいしそうだ。でも乱獲が問題視されてなかったっけ?私が婆さんになっても海にはサンマが泳いでいてほ…

2010-02-02 カテゴリ: Client Side タグ:JavaScript トラックバックJavaScript基礎文法最速マスター - なんとなく日記という記事がはてブ界隈で話題になっていたので、徒然なるままに読んでみて心に浮かんだことをそこはかとなく書きつけてみる。 まず、どうでもいい細かい点につっこみを入れておくと、「callとapplyは外せないでしょ?」とか「undefinedに限らず、かなりの数の値がオブジェクトではないですよ [注1]」とか「"use strict";してるとhoge();の形で呼び出された場合はthisは window (グローバルオブジェクト)にならないらしいですよ[注2]」とか「for in文ではまりがちな落とし穴って配列走査周りじゃね?」とかいろいろあるんだけど、まあこの辺は別にどうでもいいや。 気になったのは、クラス定義の解説のセクション
プロトタイプ function Animal(){}; Animal.prototype = { sleep : function(){}, walk : function(){ alert('noshi, noshi') } }; function Human(){}; Human.prototype = new Animal(); new Human().walk(); // noshi, noshi もっともポピュラだと思われる。 変型プロトタイプ Human.prototype.__proto__ = Animal.prototype; new Human().walk(); // noshi, noshi ほとんどのIEを除くJavaScript処理系で実行可能。裏ワザちっく。 エクステンド /** * extend function * @param {Object} s su
1リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く