Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

Feb 11, 20145 likes1,576 viewsAI-enhanced description The document discusses JavaScript inheritance and the __proto__ property. It contains the following key points: 1. JavaScript uses prototype-based inheritance rather than class-based inheritance, with objects inheriting properties from the objects on their prototype chain, accessible via the __proto__ property. 2. The __proto__ property links a
// 基底クラス function f () { this.f_has = "f_has"; } // 基底クラスのprototypeを設定 f.prototype.f_proto = "f_proto"; // サイ本の手法で継承 function F () { this.F_has = "F_has"; } F.prototype = Object.create(f.prototype); F.prototype.constructor = F; // ウェッブの手法で継承 function G () { this.G_has = "G_has"; } G.prototype = new f(); TestCase("inherit test", { setUp : function () { this.F = new F(); this.G = new G(); }, "test i
var Hello = (function(){ // constructor function Hello(name){ this._name = name; } // private method function say(message){ console.log(message + ', ' + this._name); } // public method function hello(){ say.call(this, 'Hello'); } Hello.prototype = { // constructor 修正 constructor: Hello, // 以下 public メソッド hello: hello }; return Hello; }()); var Animal = (function(){ function Animal(name){ this._nam
JavaScript のオブジェクトはプロパティ(自身のプロパティを指す)の動的な「袋」です。 JavaScript のオブジェクトは、プロトタイプオブジェクトへのリンクを持っています。あるオブジェクトのプロパティにアクセスしようとすると、オブジェクトだけでなく、オブジェクトのプロトタイプ、プロトタイプのプロトタイプへと、一致する名前のプロパティが得られるか、プロトタイプチェーンの終端に到達するまで、プロパティの探索が行われます。 メモ: ECMAScript 標準に従い、 someObject.[[Prototype]] という表記を someObject のプロトタイプを示すのに使用しています。内部スロット [[Prototype]] には Object.getPrototypeOf() と Object.setPrototypeOf() 関数でアクセスすることができます。これは、標準
記事とは関係ない質問なのですが __proto__にnullを設定した場合のみ 以降のinstanceof演算子の挙動が変わるのは仕様なのでしょうか FirefoxとChromeで確認しました o = {} o.__proto__ = Object.prototype o instanceof Object //true o.__proto__ = {} o.__proto__ = Object.prototype o instanceof Object //true o.__proto__ = 'abc' o.__proto__ = Object.prototype o instanceof Object //true o.__proto__ = undefined o.__proto__ = Object.prototype o instanceof Object //true o._
methane @methane オブジェクトはクラスじゃないと言われると、クラスオブジェクト作るだけの Python はクラスが無いな/ 最強オブジェクト指向言語 JavaScript 再入門! on @slideshare #javascript http://t.co/aA53uLvN4k 2013-07-05 12:46:47 methane @methane var Hoge = new Function() を class Hoge: と書いたらほぼ Python. だが obj.meth はメソッドをオブジェクトにバインドするのでその点使いやすい。 2013-07-05 12:48:33
Javascript objects and classes aren’t hard. This whole “prototype” thing is blamed for too much: prototype-based programming isn’t hard. this is really weird, but prototypes aren’t. What’s prototype-based programming? It just means every object has a “prototype” and when you look up a property on the object it searches the object, then the object’s prototype, then the prototype’s prototype, and so
インスタンスに依存してなければこれで済むから簡単ですよねー function A(){} var proto = A.prototype; Object.defineProperty(proto,'key',{ value : 'default', writable : true }); インスタンスに依存している場合はprototype定義時にそのインスタンスが存在しないのでvalueで初期値を定義できません。 単純なコードだと、実際の値を保持する別propertyとget/setを定義して、まだ保持していなかったら設定するとかそうなるでしょう。 function foo(val) { // valの内容によって戻り値が変わると思いねえ return 'default'; } function A(){} var proto = A.prototype; Object.definePro
JavaScriptのプロトタイプチェーンについて理解しようとしたのだけど、prototypeとか__proto__とかごちゃごちゃになって、色んなブログを読んでもなかなか理解しきれなくて悶々としていたのだが、図を書いたらパッと理解できた!以下、情報ソースはなるべくECMAScript仕様書(3rd)を元にするようにして書きました なぜ分かりづらいのか? そもそも、なぜJavaScriptのプロトタイプチェーンは自分にとってこうも分かりづらかったのだろうか?自分なりに分析してみると、まず、「似ているが違う用語が沢山ある」という点がある。ざっとあげただけでも、「prototypeと__proto__」「__proto__と[[Prototype]]」「FunctionとFunctionオブジェクト」などがある。そして次に、「入り組んだ構造が動的に変化する」という点がある。上記のように似たよう
This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support. Create Advanced Web Applications With Object-Oriented Techniques Ray Djajadinata Recently I interviewed a software developer with five years experience in developing Web applications. She’d been doing JavaScript for four and a half years, she rated her J
Markdown が使いたくて、はてなダイアリーからはてなブログに引っ越してきました。ちょっと書いては放置してるブログの残骸があちこちに散らかっております。 前回プロトタイプについて勉強してみてふんわり分かった気になったけど、その中で 1 箇所よく分からなかったところがありました。 前回のおさらい Javaと比較しつつ、JavaScriptのプロトタイプについて調べてみる - tacamy memo の「分からなかったところ」を参照。 前回分からなかったところ プロトタイプには次のような特徴がありました。 プロトタイプの中身は、そのオブジェクトを基に生成されたインスタンスから参照される (暗黙の参照) 同じオブジェクトを基に複数のインスタンスを生成した場合、どのインスタンスからも同じプロトタイプの中身 (プロパティ) を参照できる 複数のインスタンスからひとつのプロトタイプを参照しているだ
パズドラ(パズル&ドラゴンズ)のパズル部分がとても面白いので 自作ゲームに使えないかと、とりあえずJavaScriptでクローンしてみました Github - kjirou/mugen_pazdora (開発兼デモ環境はコチラ、デバッグ中だったらスマン) 色々と未完成ですが、パズル本体部分は再現出来てるつもり Google Chrome と iPhone4 の Safari でしか動作確認していません iPhoneでは残念な速度になっております 今後開発を続けるかは考え中 利用したJavaScriptライブラリの所感 Sugar.js v1.3.6 JSDeferred v0.4 jQuery v1.8.2 jQuery UI v1.9.1 jQuery UI Touch Punch v0.2.2 Sugar.js はかつてのprototype.jsのように プロトタイプを上書き
※ 2012-10-18追記 forEachはfilterの間違いでした。修正しておきます。 Smashing Node.js: JavaScript Everywhere (Smashing Magazine Book Series) 作者: Guillermo Rauch出版社/メーカー: Wiley発売日: 2012/09/11メディア: ペーパーバック購入: 1人 クリック: 67回この商品を含むブログを見る 本ブログは東京Node学園祭2012 アドベントカレンダーの1日目の記事です。 さてさて、Smashing Node.jsを読んでます。 読んでいて思ったのですが、非常に良書です。 著者は 前回のNode学園祭で魔法のようなライブコーディングを見せた Guillermo さん。 せっかくなので、Smashing Node.jsで書かれている内容の中で琴線に触れたものはシリーズ
「Ruby脳が理解するJavaScriptのオブジェクト指向 」の続きです。 引き続きJavaScriptのオブジェクト指向における「継承」について学んだので、自分の理解を書いてみます。当然に、間違いが含まれています。ご指摘助かります。 前回のまとめ 前回の記事では、JavaScriptの「オブジェクトの生成」、「プロトタイプチェーン」、「オブジェクトコンストラクタ」、「new演算子」の各概念について順にみました。これらを通したJavaScriptのオブジェクト指向に対する僕の理解は概ね次のようなものです。 すべてのオブジェクトは__proto__プロパティ(非標準)を持っていて、プロパティ探索に関し、ここにセットされたオブジェクトを順次たどりこれを解決する(プロトタイプチェーン)。__proto__にはデフォルトで空オブジェクトがセットされている。 同種オブジェクト(属性値だけが異なるオ
Javascriptでオブジェクト指向Javascriptはプロトタイプベース(インスタンスベース、委譲による継承)なOOP。 JavaなどはクラスベースなOOP。 関数はクラス function Foobar() {}; // 関数に new でインスタンスを生成できる。 // この関数はコンストラクタとして働く var foobar = new Foobar(); alert( foobar.constructor ); // function Foobar() {} alert( foobar instanceof Foobar ); // true var Foobar = function(arg) { // このような定義にすると new した全てのインスタンス // 対してここで代入している内容が別々に作られてしまう。 this.var = arg; this.method
(追記:2012-12-15) 本記事およびこれに続くその2,その3をまとめて電子書籍化しました。「Gumroad」を通して100円にて販売しています。内容についての追加・変更はありませんが、誤記の修正およびメディア向けの調整を行っています。 電子書籍「Ruby脳が理解するJavaScriptのオブジェクト指向」EPUB版 このリンクはGumroadにおける商品購入リンクになっています。クリックすると、オーバーレイ・ウインドウが立ち上がって、この場でクレジットカード決済による購入が可能です。購入にはクレジット情報およびメールアドレスの入力が必要になります。購入すると、入力したメールアドレスにコンテンツのDLリンクが送られてきます。 購入ご検討のほどよろしくお願いしますm(__)m 関連記事: 電子書籍「Ruby脳が理解するJavaScriptのオブジェクト指向」EPUB版をGumroadか
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く