この資料では、JavaScript でオブジェクト指向プログラミングを行う際に備えておくことが望ましい、基礎知識や概念について解説します。 【対象者】 ・JavaScript でアプリケーションを構築できる方 ・JavaScript におけるオブジェクト指向プログラミングの 実現手法や原理への理解を深めたい方 ・Java 的なクラスベースの言語との違いに違和感や混乱を 感じてらっしゃる方Read less
この資料では、JavaScript でオブジェクト指向プログラミングを行う際に備えておくことが望ましい、基礎知識や概念について解説します。 【対象者】 ・JavaScript でアプリケーションを構築できる方 ・JavaScript におけるオブジェクト指向プログラミングの 実現手法や原理への理解を深めたい方 ・Java 的なクラスベースの言語との違いに違和感や混乱を 感じてらっしゃる方Read less
JavaScriptのプロトタイプチェーンについて理解しようとしたのだけど、prototypeとか__proto__とかごちゃごちゃになって、色んなブログを読んでもなかなか理解しきれなくて悶々としていたのだが、図を書いたらパッと理解できた!以下、情報ソースはなるべくECMAScript仕様書(3rd)を元にするようにして書きました なぜ分かりづらいのか? そもそも、なぜJavaScriptのプロトタイプチェーンは自分にとってこうも分かりづらかったのだろうか?自分なりに分析してみると、まず、「似ているが違う用語が沢山ある」という点がある。ざっとあげただけでも、「prototypeと__proto__」「__proto__と[[Prototype]]」「FunctionとFunctionオブジェクト」などがある。そして次に、「入り組んだ構造が動的に変化する」という点がある。上記のように似たよう
(ε・◇・)з mofmof.js や新しい uupaa.js では prototype拡張を活用しています (ε・◇・)з 長所がわかりづらいみたいなので、言い出しっぺのボクの中の人がメリットを列挙してみよー というエントリです (ε・◇・)з でも、長文になりそうなので、思いついたらちょっとずつ書き足していって、後で再編するよー というノリです (ε・◇・)з タイトルも適当です かわいい子には旅をさせるよ ( HTMLElement#cut ) 子ノード(div)を親ノードからパージする処理を考えてみましょう。 ---✂-------------------✂--- if (div.parentNode) { div.parentNode.removeChild(div); // div.parentNode = null } ---✂-------------------✂---
@rosylillyが気にしていた のでまとめた。 built-in/DOM objectのprototype拡張による弊害 追加したプロパティ/メソッドがfor inで列挙される var obj = {a:1}; for (var i in obj) { console.log(i); } こうするとaだけ出るはずが、 Object.prototype.b=function(){}; こうした後だとa,bが出てしまうって奴ですね。 そのまま代入しないでObject.defineProperty/definePropertiesでenumerable:falseのプロパティとして定義すれば列挙されなくなるので特に問題ありません。 今回挙げるprototype拡張の弊害の内唯一これだけはECMAScript5時代になって解消されました。唯一これだけは。 built-in/DOM object
ここではpolyfillではない独自のprototype拡張のことを取り上げる。 AMDのModuleが使える環境がふえてくなかで、JSでも今より小さなモジュールを組み合わせて作るの流行る、かどうかわからないが、少しは増えると思うんだけど、そんときprototype拡張されてた場合厄介なことになりそうな気がする。 フルスタックなRailsのようなフレームワークなら良いかなって思ったりもした。 そうすると、Rails内で使うすべてのライブラリがprototype拡張していないことがわかってないといけない. どのライブラリならしてよくて、よくないとか、利用ケースをどこまで想定できるかとかややこしい。 広告のJSなども含めると、どこでコンフリクトするか作者に保証させるのはかなりきつい. 「(著名なモジュール)Aとは競合しないよ」ということは言えても。 で、思いついたのは、(npmを例にあげる)
Luciano Costa, Agile Software Developer and Consultant at Monttez, 12 minutes ago ECMAScript 5 - Presentation Transcript ECMAScript 5 Damian Wielgosik varjs.comfront-trends.com @varjs Hey, what is that ECMAScript actually? let’s create a simplest object ever var obj = {}; let’s add a property to it var obj = { foo : 1}; let’s read that property var obj = { foo : 1};obj.foo; // 1 - this is how we
移転しました http://please-sleep.cou929.nu/20100929.html
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
■Singleton P46 グローバルなものはできるだけ使わない。 いわゆるクロージャー的なものでprivateなプロパティやメソッドを扱える。 var singleton = function () { var privateVariable; function privateFunction(x) { ...privateVariable... } return { firstMethod: function (a, b) { ...privateVariable... }, secondMethod: function (c) { ...privateFunction()... } }; }(); ■Power Constructor P48 Power Constructorはベースとなるものをprototype先にしたthatに、内部でprivateなメソッドやプロパティを
2010-07-19 カテゴリ: Client Side タグ: JavaScript トラックバック JavaScriptのnewって何?一体何なの?という話 - 愛と勇気と缶ビール クラスってものはJavaScriptにはないはずなのに、 new ClassName();と書くとあたかもClassNameクラスのオブジェクトのインスタンスが生成され、それが返ってくるかのような挙動をしている。 これは気持ち悪い。言語仕様としてはクラスは本来存在しないのに、クラスのようなものが導入されている。まともな神経を持った人間なら、一体 new演算子って何なの?という疑問を持つのが当たり前である。 こんな扱いを受けているnewがあまりにも不憫で涙した>< newはprototype-basedなJavaScriptを書くための唯一の手段[1]で、真にJavaScriptらしいコードを書くためには欠か
2010-02-02 カテゴリ: Client Side タグ: JavaScript トラックバック JavaScript基礎文法最速マスター - なんとなく日記という記事がはてブ界隈で話題になっていたので、徒然なるままに読んでみて心に浮かんだことをそこはかとなく書きつけてみる。 まず、どうでもいい細かい点につっこみを入れておくと、「callとapplyは外せないでしょ?」とか「undefinedに限らず、かなりの数の値がオブジェクトではないですよ [注1]」とか「"use strict";してるとhoge();の形で呼び出された場合はthisは window (グローバルオブジェクト)にならないらしいですよ[注2]」とか「for in文ではまりがちな落とし穴って配列走査周りじゃね?」とかいろいろあるんだけど、まあこの辺は別にどうでもいいや。 気になったのは、クラス定義の解説のセクション
「まるごとJavaScript & Ajax ! Vol.1」買いました。 まるごとJavaScript & Ajax ! Vol.1 作者: 天野仁史,舘野祐一,川崎有亮,arton,田中孝太郎,国分裕,山本有悟,海野裕也,nanto_vi出版社/メーカー: インプレス発売日: 2007/02/15メディア: 大型本購入: 8人 クリック: 98回この商品を含むブログ (78件) を見る えーと、最初にartonさんのJavaScriptの落とし穴があって、その次が弾さんプロタイプベースオブジェクト指向の解説(404 Blog Not Found:javascript - プロトタイプ的継承とか)があって、その次がid:amachangのPrototype.jsの解説で、その先が…でとにかく盛りだくさんですね! あっ。 弾さん、それまずい。 前から気づいてたんですけど、その方法じゃArr
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く