SlideShare a Scribd company logo
1 of 10
Download to read offline
ES6 で HTMLElement
の派生が作りたかった。
@ETROJAN
2016 OCT 20
背景
jQueryとか使わずにdivとかにhide()とか足したい。
▸ 例えば広告Tagを想定すると jQuery とかは媒体のJSで競合する可能性があり
使えない。
▸ でもいちいち elm.style.display =‘none’ とかしてると気が遠くなる。
▸ そこで HTMLDivElement の派生(っぽい)事がやりたくなった。
ES5
ES5だと無理やりやれる。
▸ もともとClassが無いので、それっぽくはなる。
▸ ポイントは function の戻りで createElement し
た変数を返すところ。
俺は HTLMElement
が派生出来るものだと思っ
ていた。
ES6
ES6だとエラーが出る。
▸ なんか良さそうなんだけど super() でエラーが出
る。
▸ 調べてみると。。。
HTMLElement インターフェ
イスは HTML 要素を表します.
MDN
インターフェイスだった!!
驚愕の事実。
HTMLElementはインターフェイスだった。
▸ と分かったところで。。。
▸ ES6には多重継承もインターフェイスも無いのである。
▸ 頑張ればなんとかなるかもしれないが無用に複雑化してしまっては本末転倒。
▸ 結局は jQuery っぽい実装になった。
JQUERY的実装
結局 new は諦める。
▸ クラスメソッドに createElement を作り、そこ
でdivのインスタンスを作って return するように
した。
▸ やってることは ES5 と同じ。
▸ new できなくなったり、インスタンスメソッド
の実装が煩雑になったりしてるけど、致し方な
い。
CHROMEだけなら
Custom Elements もある。
▸ Chromeには実装されてる。
▸ でも他は全滅。使えるとは言えない。
来年は TypeScript
でライブラリ書こうかな。
@etrojan
来年は

More Related Content

Viewers also liked

Hotサービスの傾向
Hotサービスの傾向Hotサービスの傾向
Hotサービスの傾向Eiji Kuroda
 
SmartPhone と AdTechの世界
SmartPhone と AdTechの世界SmartPhone と AdTechの世界
SmartPhone と AdTechの世界Eiji Kuroda
 
いまどきのチームびるでぃんぐ
いまどきのチームびるでぃんぐいまどきのチームびるでぃんぐ
いまどきのチームびるでぃんぐEiji Kuroda
 
YAPC::Europe 2014 に行ってきました
YAPC::Europe 2014 に行ってきましたYAPC::Europe 2014 に行ってきました
YAPC::Europe 2014 に行ってきましたTatsuro Hisamori
 
今更聞けないストリーム処理のあれとかこれ
今更聞けないストリーム処理のあれとかこれ今更聞けないストリーム処理のあれとかこれ
今更聞けないストリーム処理のあれとかこれTatsuro Hisamori
 
平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用
平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用
平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用Tatsuro Hisamori
 
アドテク勉強会0819
アドテク勉強会0819アドテク勉強会0819
アドテク勉強会0819Hideya Kato
 
CGI Perlでわかる!サーバレス
CGI Perlでわかる!サーバレスCGI Perlでわかる!サーバレス
CGI Perlでわかる!サーバレスTatsuro Hisamori
 
マイクロサービスアーキテクチャ とは何か
マイクロサービスアーキテクチャとは何かマイクロサービスアーキテクチャとは何か
マイクロサービスアーキテクチャ とは何かYusuke Suzuki
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!mosa siru
 
Prottとsketchとzeplinのススメ
ProttとsketchとzeplinのススメProttとsketchとzeplinのススメ
ProttとsketchとzeplinのススメAsami Yamamoto
 

Viewers also liked (12)

Hotサービスの傾向
Hotサービスの傾向Hotサービスの傾向
Hotサービスの傾向
 
SmartPhone と AdTechの世界
SmartPhone と AdTechの世界SmartPhone と AdTechの世界
SmartPhone と AdTechの世界
 
いまどきのチームびるでぃんぐ
いまどきのチームびるでぃんぐいまどきのチームびるでぃんぐ
いまどきのチームびるでぃんぐ
 
YAPCEurope2014-myfinder
YAPCEurope2014-myfinderYAPCEurope2014-myfinder
YAPCEurope2014-myfinder
 
YAPC::Europe 2014 に行ってきました
YAPC::Europe 2014 に行ってきましたYAPC::Europe 2014 に行ってきました
YAPC::Europe 2014 に行ってきました
 
今更聞けないストリーム処理のあれとかこれ
今更聞けないストリーム処理のあれとかこれ今更聞けないストリーム処理のあれとかこれ
今更聞けないストリーム処理のあれとかこれ
 
平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用
平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用
平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用
 
アドテク勉強会0819
アドテク勉強会0819アドテク勉強会0819
アドテク勉強会0819
 
CGI Perlでわかる!サーバレス
CGI Perlでわかる!サーバレスCGI Perlでわかる!サーバレス
CGI Perlでわかる!サーバレス
 
マイクロサービスアーキテクチャ とは何か
マイクロサービスアーキテクチャとは何かマイクロサービスアーキテクチャとは何か
マイクロサービスアーキテクチャ とは何か
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
Prottとsketchとzeplinのススメ
ProttとsketchとzeplinのススメProttとsketchとzeplinのススメ
Prottとsketchとzeplinのススメ
 

HTMLElementの派生が作りたかった。