JavaScript の function オブジェクトには call メソッドと apply メソッドというものが標準で用意されています。不思議な動作をするメソッドであり、その有用性を理解するのは難しいのですが、いつか役に立つ時がくるはず?なので調べました。 call メソッドの基本的な動作 まず、オブジェクトと関数を定義します。
![[JavaScript] call メソッドと apply メソッドの基本的な動作](https://cdn-ak-scissors.b.st-hatena.com/image/square/8d71ff5111e05619a10d29bb40d7aebaa75c8fbc/height=288;version=1;width=512/https%3A%2F%2Fs0.wp.com%2Fi%2Fblank.jpg)
JavaScript の function オブジェクトには call メソッドと apply メソッドというものが標準で用意されています。不思議な動作をするメソッドであり、その有用性を理解するのは難しいのですが、いつか役に立つ時がくるはず?なので調べました。 call メソッドの基本的な動作 まず、オブジェクトと関数を定義します。
よく見るのは次のような方法。 Obj = function(_value, _option){ this.value = _value; this.option = _option || 10; }; obj1 = new Obj(0, 1); obj2 = new Obj(0); alert(obj1.value); // 0 alert(obj1.option); // 1 alert(obj2.value); // 0 alert(obj2.option); // 10 これは、_optionがundefinedの場合でもデフォルト値を与えるという処理をしている。 省略可能な引数を複数設定したい場合まず上記と同じ方法で実装してみる。 Obj = function(_value, _option1, _option2){ this.value = _value; this.option
JSON は、「JavaScript Object Notation」の略で「ジェイソン」といいます。
I have a web application which has a memory leak somewhere and I am unable to detect it. I already tried the Chrome developer tools which normally works great, but I am unable to track down the lines of code which are responsible. The Chrome tools just give me too much information and I can't relate the objects in memory to my code. Are there any other tools that might be helpful?
How to write low garbage real-time Javascript - Scirra.com を読んだメモ. 60fps とかで動くブラウザゲームでは, GC のせいで js が一時停止してしまうのが問題になる. そこで GC を極力減らすための tips を紹介. GC 特に意識せずコードを書くとあるタイミングでブラウザが GC をはしらせる. その際 js の実行が一時的に止まってメモリを解放する. developer tool 出見るとジグザグのグラフになる. シンプルテクニック ポイントは allocate したメモリは極力使いまわす こと new したオブジェクトは使いまわす. 一番わかり易い {}, [], function() {} も新しい領域を確保している 例えば関数の返り値で同じ構造のオブジェクトを返す場合, 毎回新しく作るんじゃなくてグローバル
JavaScript チュートリアル 初級編 JavaScript の基礎 JavaScript の第一歩 JavaScript の構成要素 JavaScript オブジェクト入門 JavaScript ガイド 入門編 文法とデータ型 制御フローとエラー処理 ループとイテレーター 関数 式と演算子 数と日付 テキスト処理 正規表現 インデックス付きコレクション キー付きコレクション オブジェクトを利用する Using classes プロミスの使用 JavaScript 型付き配列 イテレーターとジェネレーター メタプログラミング JavaScript モジュール 中級編 クライアントサイド JavaScript フレームワーク クライアントサイド Web API Language overview JavaScript のデータ構造 等値比較と同一性 プロパティの列挙可能性と所有権 クロ
#divclass(page_title){ &this_page() } 我々は&blanklink(C++ style for comments){http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Comments}の考え方に従います。 全てのファイル、クラス、メソッド、プロパティに&blanklink(JSDoc){http://code.google.com/p/jsdoc-toolkit/}コメントが、適切な&link_anchor(jsdoc_tag_reference){タグ}と&link_anchor(js_type_language,pageid=17){データ型}を伴って記されるべきです。また名前から明白に判断できる場合を除き、プロパティ、メソッド、メソッドの引数、メソッドの戻り値を説明する文章
JavaScriptにおけるDOM(ドキュメントオブジェクトモデル)のAudioオブジェクトのプロパティ。 Audioオブジェクトは、HTMLのaudio要素(埋め込みオーディオ)を扱うオブジェクト。 Audioオブジェクトは、このページのプロパティやメソッドだけでなく、Elementオブジェクトやイベントのページの内容も大方有効である。 audioObject.srcプロパティ audioObject.srcは、埋め込みオーディオ(audio要素)のsrc属性の値を取得、もしくは、設定するプロパティ。src属性には、ドキュメントに埋め込むオーディオファイルのURLを指定する。src属性値を変更することで、オーディオファイルを切り替えることができる。 audioObject.controlsプロパティ audioObject.controlsは、埋め込みオーディオ(audio要素)のcon
Note: Sites that automatically play audio (or videos with an audio track) can be an unpleasant experience for users, so should be avoided when possible. If you must offer autoplay functionality, you should make it opt-in (requiring a user to specifically enable it). However, this can be useful when creating media elements whose source will be set at a later time, under user control. See our autopl
WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。 ちょっと事情がありまして、 Web ページ上で JavaScript を使って効果音を鳴らす方法を調べてみました。意外なことに、現状では標準化された方法がないんですね。埋め込みオブジェクトを使って BGM を鳴らすくらいはできるのですが、 JavaScript から任意のタイミングで効果音を鳴らすには、 Flash を組み合わせるくらいしか選択肢がないようです。
まえがき JavaScript、書いてますか? JavaScriptは今や世界中の人々に愛されています。 stackoverflowの2016年の調査によるとJavaScriptは地球上で最も一般的に使用されているプログラミング言語だそうです。 JavaScript is the most commonly used programming language on earth. Even Back-End developers are more likely to use it than any other language. link しかしJavaScriptは愛されすぎているが故、しばしば黒魔術のようだと比喩されることも少なくありません。 愛と憎しみが紙一重とはこのことですね。 ということでそんなこんなはどうでもいいのですが、自分もJavaScriptは大好きです。 今回は黒魔術まと
JavaScriptでは初期化されていない変数には全て「undefined」という値が入っています。 var a; alert(a); //undefinedが入っている これを利用して、変数が定義済みかどうかを判別することが可能です。…が、やり方がいろいろあるみたいなので、まとめてみることにします。 undefinedと比較する if (a === undefined) { alert("aは未定義"); } グローバル変数として、そのまんまundefinedという名前の変数が用意されているので、それと比較するやり方。一番素直な方法ですが、JavaScriptにおいては良くない書き方とされています。 undefinedは予約語ではなく、単なる変数です。だから上書きすることができるし、関数スコープ内で同名のローカル変数を作ることもできます。(ただし最近の処理系ではconst扱いになって上書
(function (param1, param2) { //処理 }('hoge', 'fuga')); var result = (function (param1, param2) { return param1 + param2; }(1, 2)); console.log(result); //3が出力される。 ズバリ、スコープの汚染を防ぐため。 JavaScriptのスコープ JavaScriptのスコープは、「グローバルスコープ」と「関数スコープ」のみ。すなわち関数は任意にスコープを作るための唯一の手段である。 関数スコープの中でvarを使って定義された変数は関数の中でローカルな変数になるので、関数の外側の変数を上書きしたりすることはない。 なるべく変数の有効範囲をせばめる 一時変数を使用する一連の処理があった時に、それらの変数をすべてグローバル変数にしてしまうのはアンチパタ
2015年にもなるのにJavaScriptでのDOM操作のパフォーマンスについて書く。ウェブページにインタラクションを持たせたい時に、JavaScriptでDOM操作を行うことがよくある。このDOM操作のパフォーマンスについて、よく聞く意見を大別すると次の2つがある。 JavaScriptによるDOM操作は重たい レンダリングが重いだけで、DOM操作そのものはそれほど重たくない JavaScriptでオブジェクトのプロパティを操作したりする単体の処理は通常1ミリ秒もかからないが、DOM操作をするとレンダリングが完了するまでに数十ミリ秒程度かかったりする場合がある。1番目のDOM操作が重たいと言っている人は経験則的にそう言っていることが多い。 レンダリングの仕組みを知っている人は2番目の意見を言うが、重箱の隅をつつくような話をするとこれも必ずしも正しいわけではない。DOM操作するコードによっ
こんにちは。開発担当の林です。 iPhone / iPad のウェブブラウザでページを見ているとき、けっこうな割合でピンチイン・ピンチアウトすると思いますが、それがどのくらい拡大されているのかを取得する方法を書きます。 また、応用でピンチイン・ピンチアウトされても、見た目のサイズを維持するにはどのくらい拡大すれば良いかということにも触れたいと思います。 広告バナーなんかでよく使われてるアレの仕組みです。何かのお役に立てれば幸いです。 ウェブページがどのくらい拡大されているのかを取得する // ページの幅 ÷ 表示されている幅(この行だけでいいかな) var zoomer = document.body.clientWidth / window.innerWidth; // 以下で拡大率を目視できるでしょう alert( zoomer ); // 小数点がたくさんつくので、第二位までに丸め込
この投稿は、 JavaScript Advent Calendar 18日目の記事です。 更新履歴 こちら をご覧下さい JavaScript の書き方をアップデートする JavaScript Good Parts で書かれているような JS の書き方は、古くなりつつある部分も多いです。 正直なところ、自分はあの本が「今でも」良書だとは思っていません。 初学者に勧めることもしません。まんべんなさと普遍性と客観性から「パーフェクト JavaScript」 を勧めています。 その頃と比べると、 JavaScript をとりまく環境は変わりました JavaScript の進化に合わせて書き方もアップデートしていくべきなので、今回は分かりやすいしきい値として 「IE10 以下を切れるとしたら」 という前提で、列挙してみます。 たとえば XHR2 や File API に依存したサービスをやる場合な
吉川徹さんによる「DOM操作の最適化によるJavaScriptチューニング」問題解説記事です。JavaScriptのDOM操作について基本的なパフォーマンスチューニングができるかどうかを評価する問題でした。 チューニングを行うことで、具体的にどういった形のコードになるかを中心に解説していただきましたので、ぜひ参考にしてくださいね! by 馬場美由紀 (CodeIQ中の人) 吉川徹です。 少し前になりますが、私の方から以前、JavaScriptのパフォーマンスチューニングについての問題を出題しました。今回は、その問題の解説をしていきたいと思います。 また、この問題は、HTML5 Experts.jpとの連動企画となっており、こちらの記事を読んで頂くとおおよそのチューニング方法について理解できるというものになっています。ぜひ、合わせてご覧頂ければと思います。 問題文 あるHTMLファイルに記述
本日は、htmlやcssはたまたjavascriptのソースを綺麗にしてくれるwebサービスを紹介します! もちろんお金等はかかりません。 綺麗に書くように意識しつつも、 忙しい時期や、修正が繰り返し発生したりすると、 ソースを綺麗にする意識はどこかにいってしまいがちですよね・・・(自分だけでしょうか?) そんな時に、ソースを書き終わったら、 このツールを使えば、ソースがあっという間にキレイになります。 PrpCSSor こちらはcss専用で、オプションが豊富です。 ・インデントの設定(1から4の半角スペース) ・括弧の位置の指定 ・複数セレクタ指定の際、改行or一行の選択 ・親子関係の際にインデントの指定 PrpCSSor DIRTYMARKUP こちらは、html,css,javascriptも整形出来ます。 デバック機能もあるようです。 ・インデントの設定(1から4の
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く