Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
株式会社ランチェスター
835 views
ちょっと詳しくJavaScript 特別編【悪霊の神々】
Technology
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Downloaded 13 times
1
/ 14
2
/ 14
3
/ 14
4
/ 14
5
/ 14
6
/ 14
7
/ 14
8
/ 14
9
/ 14
10
/ 14
11
/ 14
12
/ 14
13
/ 14
14
/ 14
More Related Content
PDF
Effective modern-c++#9
by
Tatsuki SHIMIZU
PPTX
pecl-AOPの紹介
by
Hiraku Nakano
PDF
ちょっと詳しくJavaScript 第4回【スコープとクロージャ】
by
株式会社ランチェスター
PDF
ありえるえりあ勉強会@五反田~テスト編~ Part3
by
Tomoyuki Sato
PDF
emc++ chapter32
by
Tatsuki SHIMIZU
PDF
Hokuriku Scala 1
by
NISHIMOTO Keisuke
PPTX
歌舞伎座Tech Rx会
by
Kaora Shibacaki
PDF
Effective Modern C++ 勉強会#3 Item16
by
Mitsuru Kariya
Effective modern-c++#9
by
Tatsuki SHIMIZU
pecl-AOPの紹介
by
Hiraku Nakano
ちょっと詳しくJavaScript 第4回【スコープとクロージャ】
by
株式会社ランチェスター
ありえるえりあ勉強会@五反田~テスト編~ Part3
by
Tomoyuki Sato
emc++ chapter32
by
Tatsuki SHIMIZU
Hokuriku Scala 1
by
NISHIMOTO Keisuke
歌舞伎座Tech Rx会
by
Kaora Shibacaki
Effective Modern C++ 勉強会#3 Item16
by
Mitsuru Kariya
What's hot
PDF
TypeScript 言語処理系ことはじめ
by
Yu Nobuoka
PDF
C#次世代非同期処理概観 - Task vs Reactive Extensions
by
Yoshifumi Kawai
PDF
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
by
Yoshifumi Kawai
PDF
規格書で読むC++11のスレッド
by
Kohsuke Yuasa
PDF
C++ マルチスレッドプログラミング
by
Kohsuke Yuasa
PDF
C++ マルチスレッド 入門
by
京大 マイコンクラブ
PPTX
冬のLock free祭り safe
by
Kumazaki Hiroki
PPTX
非同期処理の基礎
by
信之 岩永
PPTX
BoostAsioで可読性を求めるのは間違っているだろうか
by
Yuki Miyatake
PPTX
async/await のしくみ
by
信之 岩永
PDF
メディア・アートII 第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション
by
Atsushi Tadokoro
PDF
Kanazawa.js.Next
by
dynamis
PDF
xv6から始めるSPIN入門
by
Ryousei Takano
PDF
Swift 2.0 の Error Handling #yhios
by
Tomohiro Kumagai
PPTX
Scalamacrosについて
by
dekosuke
PDF
Shibuya JVM Groovy 20150418
by
Uehara Junji
PPTX
Go guide for Java programmer
by
Masaaki Yonebayashi
PDF
effective modern c++ chapeter36
by
Tatsuki SHIMIZU
PDF
Async design with Unity3D
by
Kouji Hosoda
PDF
Reactive Extensions v2.0
by
Yoshifumi Kawai
TypeScript 言語処理系ことはじめ
by
Yu Nobuoka
C#次世代非同期処理概観 - Task vs Reactive Extensions
by
Yoshifumi Kawai
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
by
Yoshifumi Kawai
規格書で読むC++11のスレッド
by
Kohsuke Yuasa
C++ マルチスレッドプログラミング
by
Kohsuke Yuasa
C++ マルチスレッド 入門
by
京大 マイコンクラブ
冬のLock free祭り safe
by
Kumazaki Hiroki
非同期処理の基礎
by
信之 岩永
BoostAsioで可読性を求めるのは間違っているだろうか
by
Yuki Miyatake
async/await のしくみ
by
信之 岩永
メディア・アートII 第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション
by
Atsushi Tadokoro
Kanazawa.js.Next
by
dynamis
xv6から始めるSPIN入門
by
Ryousei Takano
Swift 2.0 の Error Handling #yhios
by
Tomohiro Kumagai
Scalamacrosについて
by
dekosuke
Shibuya JVM Groovy 20150418
by
Uehara Junji
Go guide for Java programmer
by
Masaaki Yonebayashi
effective modern c++ chapeter36
by
Tatsuki SHIMIZU
Async design with Unity3D
by
Kouji Hosoda
Reactive Extensions v2.0
by
Yoshifumi Kawai
Similar to ちょっと詳しくJavaScript 特別編【悪霊の神々】
PDF
ちょっと詳しくJavaScript 第3回【prototype】
by
株式会社ランチェスター
PDF
Ajax 応用
by
Katsuyuki Seino
PDF
JavaScript入門
by
Ryo Maruyama
PPT
[A 3]SSJSでも使える!Javascriptでオブジェクト指向プログラミング入門
by
Kazunori Tatsuki
PDF
JavaScriptの落とし穴
by
ikdysfm
PDF
ECMAScript没proposal追悼式
by
京大 マイコンクラブ
PDF
Chrome Developer Toolsを使いこなそう!
by
yoshikawa_t
PDF
Chromeでjavascriptデバッグ!まず半歩♪
by
Yuji Nojima
PDF
Js kusen
by
Net Kanayan
PDF
ちょっと詳しくJavaScript 第2回【関数と引数】
by
株式会社ランチェスター
PPT
20090121 J QueryからはじめるJava Script~初級編~
by
Hiromu Shioya
PDF
JavaScript.Next
by
dynamis
PDF
traceur-compilerで ECMAScript6を体験
by
Toshio Ehara
PDF
大(中)規模Java script開発について
by
Yuki Tanaka
PDF
JavaScriptおよびXPages Vote技術解説
by
賢次 海老原
PDF
JavaScript.Next Returns
by
dynamis
PDF
覚醒!JavaScript
by
Haraguchi Go
PDF
Web技術勉強会 20110723
by
龍一 田中
KEY
いまさらJavaScript
by
Naomichi Yamakita
PPTX
Javascriptのデザインパターン【勉強会資料】
by
株式会社キャッチアップ
ちょっと詳しくJavaScript 第3回【prototype】
by
株式会社ランチェスター
Ajax 応用
by
Katsuyuki Seino
JavaScript入門
by
Ryo Maruyama
[A 3]SSJSでも使える!Javascriptでオブジェクト指向プログラミング入門
by
Kazunori Tatsuki
JavaScriptの落とし穴
by
ikdysfm
ECMAScript没proposal追悼式
by
京大 マイコンクラブ
Chrome Developer Toolsを使いこなそう!
by
yoshikawa_t
Chromeでjavascriptデバッグ!まず半歩♪
by
Yuji Nojima
Js kusen
by
Net Kanayan
ちょっと詳しくJavaScript 第2回【関数と引数】
by
株式会社ランチェスター
20090121 J QueryからはじめるJava Script~初級編~
by
Hiromu Shioya
JavaScript.Next
by
dynamis
traceur-compilerで ECMAScript6を体験
by
Toshio Ehara
大(中)規模Java script開発について
by
Yuki Tanaka
JavaScriptおよびXPages Vote技術解説
by
賢次 海老原
JavaScript.Next Returns
by
dynamis
覚醒!JavaScript
by
Haraguchi Go
Web技術勉強会 20110723
by
龍一 田中
いまさらJavaScript
by
Naomichi Yamakita
Javascriptのデザインパターン【勉強会資料】
by
株式会社キャッチアップ
More from 株式会社ランチェスター
PDF
【Web esSense】これぐらいは知っておきたい景表法の基礎知識
by
株式会社ランチェスター
PDF
【らぼ★ろぐ】jPlayerの紹介
by
株式会社ランチェスター
PDF
【書籍紹介】統計学が最強の学問である
by
株式会社ランチェスター
PDF
【書籍紹介】型システム入門
by
株式会社ランチェスター
PDF
【書籍紹介】こころを動かすマーケティング
by
株式会社ランチェスター
PDF
【書籍紹介】よくわかるJavaScriptの教科書
by
株式会社ランチェスター
PDF
【書籍紹介】ノンプログラマのためのJavaScript
by
株式会社ランチェスター
PDF
【Web es sense】MultipeerConnectivityについて
by
株式会社ランチェスター
PDF
【web esSense】やりなおしのアクセス解析ツール学習~主にGoogle Analytics~
by
株式会社ランチェスター
PDF
エンジニア的pinterest考察
by
株式会社ランチェスター
PDF
【書籍紹介】ドメイン駆動設計
by
株式会社ランチェスター
PDF
【書籍紹介】伝え方が9割
by
株式会社ランチェスター
PDF
【らぼ★ろぐ】VM上のsendmailから外部へのメールを遮断したい!!
by
株式会社ランチェスター
PDF
【Web essense】KPIはじめました
by
株式会社ランチェスター
PDF
Passbookとは_株式会社ランチェスター
by
株式会社ランチェスター
PDF
【Web esSense】KPIって何だ??
by
株式会社ランチェスター
PDF
【らぼ★ろぐ】Web情報セキュリティ入門(OWASPのご紹介)
by
株式会社ランチェスター
PDF
【書籍紹介】勝ち続ける意志力
by
株式会社ランチェスター
PDF
【書籍紹介】ゆるす力
by
株式会社ランチェスター
PDF
【書籍紹介】未来の働き方を考えよう
by
株式会社ランチェスター
【Web esSense】これぐらいは知っておきたい景表法の基礎知識
by
株式会社ランチェスター
【らぼ★ろぐ】jPlayerの紹介
by
株式会社ランチェスター
【書籍紹介】統計学が最強の学問である
by
株式会社ランチェスター
【書籍紹介】型システム入門
by
株式会社ランチェスター
【書籍紹介】こころを動かすマーケティング
by
株式会社ランチェスター
【書籍紹介】よくわかるJavaScriptの教科書
by
株式会社ランチェスター
【書籍紹介】ノンプログラマのためのJavaScript
by
株式会社ランチェスター
【Web es sense】MultipeerConnectivityについて
by
株式会社ランチェスター
【web esSense】やりなおしのアクセス解析ツール学習~主にGoogle Analytics~
by
株式会社ランチェスター
エンジニア的pinterest考察
by
株式会社ランチェスター
【書籍紹介】ドメイン駆動設計
by
株式会社ランチェスター
【書籍紹介】伝え方が9割
by
株式会社ランチェスター
【らぼ★ろぐ】VM上のsendmailから外部へのメールを遮断したい!!
by
株式会社ランチェスター
【Web essense】KPIはじめました
by
株式会社ランチェスター
Passbookとは_株式会社ランチェスター
by
株式会社ランチェスター
【Web esSense】KPIって何だ??
by
株式会社ランチェスター
【らぼ★ろぐ】Web情報セキュリティ入門(OWASPのご紹介)
by
株式会社ランチェスター
【書籍紹介】勝ち続ける意志力
by
株式会社ランチェスター
【書籍紹介】ゆるす力
by
株式会社ランチェスター
【書籍紹介】未来の働き方を考えよう
by
株式会社ランチェスター
ちょっと詳しくJavaScript 特別編【悪霊の神々】
1.
ちょっと詳しくJavaScript 特別編【悪霊の神々】 2011年07月08日
株式会社ランチェスター TEL: 03-5775-3395 Fax:03-5775-3396 URL: http://www.lanches.co.jp/
2.
名前空間的なもの - 序説 JavaScriptにおける関数定義、変数、クラス的なものなどはすべて何か のオブジェクトのプロパティとして保持されるため、普通に宣言してしま うと全てグローバルオブジェクトに属してしまう。 そのため、ライブラリなどで同じ名前があると「後勝ち」してしまい、意図 しない動作を引き起こすことがある。 これを避けるため、グローバルオブジェクトへの定義(汚染)を少なくする テクニックが生み出された。 それが「名前空間」。 他言語における名前空間、また次世代で検討されているECMAScriptと しての名前空間とは全く別なので注意してください。
Proprietary and Confidential to Lanchester Co.,LTD. Page 1
3.
名前空間的なもの - 実践その1 実はそんなに難しい話じゃないです。 js1.js function
hello() { alert("Hello!"); } js2.js function hello() { alert("HELLO!!!"); } こんなソース2つを読み込むと読み込む順番によってhello関数が上書 きされてしまう。 読み込みの順番を既定したり命名ルールで避ける方法もあるけど、外 部ライブラリを使う場合にはそうも行かないことが・・・ Proprietary and Confidential to Lanchester Co.,LTD. Page 2
4.
名前空間的なもの - 実践その2 js1.js if(typeof(window.lanchester)=="undefined")
{ window.lanchester = {}; } window.lanchester.one = { hello: function() { alert("Hello!"); } }; グローバルオブジェクトに変数がすでに存在するかを確認し、ない場合 にはオブジェクトを生成する。 その下に(必要に応じて)ライブラリ名を付け、関数を作成していく。 (js2.jsも同様に) Proprietary and Confidential to Lanchester Co.,LTD. Page 3
5.
名前空間的なもの - 実践その3 使用する際はそのまま lanchester.one.hello(); lanchester.two.hello(); となる。 最上位の「lanchester」プロパティのみがグローバルオブジェクトに置か れ、被害(?)が最小限になる。
Proprietary and Confidential to Lanchester Co.,LTD. Page 4
6.
無名関数作成即実行 関数を作って即実行、その関数は使い捨てたい。 var a =
function(){ … }; a(); でもこうするとインスタンスaが出来ちゃう。勿体ない!! ( function(){ … } )(); これで解決! 関数の中で一時変数をたーくさん使ってもグローバルに置かれないので いろいろ安心できる! 動作的に意味を持たせたいなー・・・なら ( { init: function(){ … } } ).init(); こんなことも! Proprietary and Confidential to Lanchester Co.,LTD. Page 5
7.
無名関数作成即実行、実例!? <style type="text/css"> #t {
width: 100%; border-collapse:collapse; } #t td { border: 1px solid #000; } #t tr.hover { background: #fcc; } </style> <table id="t"> <tr><td>1-1</td><td>1-2</td><td>1-3</td></tr> <tr><td>2-1</td><td>2-2</td><td>2-3</td></tr> <tr><td>3-1</td><td>3-2</td><td>3-3</td></tr> </table> <script type="text/javascript"> for(var i=0, o=document.getElementById("t").getElementsByTagName("tr"), n=o.length; i<n; i++) { o[i].addEventListener("mouseover", (function(_tr) { return function() { _tr.className = "hover"; } })(o[i]), false); o[i].addEventListener("mouseout", (function(_tr) { return function() { _tr.className = ""; } })(o[i]), false); } </script> Proprietary and Confidential to Lanchester Co.,LTD. Page 6
8.
try~catch~finally try {
nothingFunction(); // そんな関数はないのに実行 } catch(e) { // エラーオブジェクト alert(e); // nothingFunction is not defined等 } finally { … // catchされてもされなくても … // 確実に実行される } エラーオブジェクトは各実装で保持しているプロパティが違うのでcatch した後の扱い方に困る・・・ Proprietary and Confidential to Lanchester Co.,LTD. Page 7
9.
try~catch~finally、実例 var xhr =
null; try { xhr = new XMLHttpRequest(); } catch(e) { try { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { alert("Ajax非対応ブラウザ乙ww"); } } } 今ではjQueryとかが勝手に作ってくれるAjax用の通信オブジェクト。 昔はこうやって自分で頑張ってつk(ry Proprietary and Confidential to Lanchester Co.,LTD. Page 8
10.
try~catch~finallyがあるからにはthrowも function f() {
throw "can't find"; } function g() { try { f(); } catch(e) { alert(e); } } 任意のオブジェクトをthrowすることができる。 Proprietary and Confidential to Lanchester Co.,LTD. Page 9
11.
JavaScriptにおける継承の例 - 定義 function
TV(name) { this.name = name; } TV.prototype.myName = function() { alert(this.name); } TV.prototype.watch = function() { alert("Watch TV!"); } function TVwithDVD(name) { this.name = name; } TVwithDVD.prototype = new TV(); // ここが肝! TVwithDVD.prototype.play = function() { alert("Play DVD!") } TVwithDVD.prototype.record = function() { alert("Recording...") } 継承する場合はprototypeへの親クラス代入をコンストラクタ内に書け ないので注意。 またコンストラクタを継承するのは難易度が高く、実用的ではない。 Proprietary and Confidential to Lanchester Co.,LTD. Page 10
12.
JavaScriptにおける継承の例 - 実践 var
tv = new TV("Panazonic"); var dvd = new TVwithDVD("TOSHIVA"); try { tv.myName(); // Panazonic tv.watch(); // Watch TV! tv.play(); // 実行不可 tv.record(); // 実行不可 } catch(e) {} // エラー握りつぶし用(本来は非推奨) try { dvd.myName(); // TOSHIVA dvd.watch(); // Watch TV! dvd.play(); // Play DVD! dvd.record(); // Recording... } catch(e) {} // エラー握りつぶし用(本来は非推奨) Proprietary and Confidential to Lanchester Co.,LTD. Page 11
13.
JavaScriptにおける継承の例 - 雑感 JavaScriptにおける継承は、その用途によって多種多様な方法があり ます。 今回挙げた例はそのうちの一つでしかないので、必要に応じて適した 形を選択する必要があるので、Google等で 「JavaScript
継承」 などで調べることをお奨めします。 クラスベース言語の継承のような機能を提供してくれるライブラリも存 在します。 また、そもそも関連性が希薄なため「継承を使わない」というのも選択 肢の一つに入れておくと良いかもしれません。 Proprietary and Confidential to Lanchester Co.,LTD. Page 12
14.
株式会社ランチェスター TEL: 03-5775-3395 Fax:03-5775-3396 URL:
http://www.lanches.co.jp/
Download