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 メソッドの基本的な動作 まず、オブジェクトと関数を定義します。
for〜in文 for文では、繰り返し処理の回数をカウンターで行ないました。for〜in文ではArrayの要素の数だけ処理を行います。for〜in文をつかって配列を操作してみます。 <?xml version="1.0" encoding="utf-8" ?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>配列の参照</title> </head> <body> <h2>for〜in文</h2> <script type="text/javascript"> var array01 = [1,2,3]; //array01オブジェクトをつくります for(index in array
例えばJAVAには、for-each文という便利な構文があります。 class Test { public static void main(String args[]) { int [] ary = new int[] { 1, 2, 3, 4, 5 }; for(int num : ary) { System.out.println(num + ","); } } } 実行結果 1,2,3,4,5, これは拡張for文とも言われ、配列のすべての要素にアクセスすることができます。 Javascriptにも似たような構文のfor-in文があります。 が、このfor-in文実に曲者で、JAVAのfor-each文と同じ感覚で使うと、必ずどこかで痛い目を見ます。 例文を見てみましょう。 <html> <head> <title>for inテスト</title> </head> <body>
JavaScript で繰り返し処理を行う方法のひとつである for...in 文の使い方について解説します。 for...in 文ではオブジェクトに含まれるプロパティ名を順に取得します。
v1.13.7 CDN URLs (Use with <script src="..."></script>) https://cdn.jsdelivr.net/npm/[email protected]/underscore-umd-min.js https://cdn.jsdelivr.net/npm/[email protected]/underscore-esm-min.js https://unpkg.com/[email protected]/underscore-umd-min.js https://unpkg.com/[email protected]/underscore-esm-min.js https://pagecdn.io/lib/underscore/1.13.7/underscore-umd-min.js https://pagecdn.io/lib/unde
この記事が対応するCoffeeScriptのバージョンは1.7です。 基本的には本家サイトCoffeeScriptの内容と同じです。わかりやすいように色々と私が勝手に再構築、追加してはありますが。(日本語訳と紹介されるとちょっと心外ですな(´Д⊂ヽ ) なお、JavaScriptの基礎知識を前提とし、JavaScriptから引き継ぎ重複する内容は解説されません。 あ。後、この記事の文章、CoffeeScriptコード、JavaScriptコードに関する著作権は放棄しています。パブリックドメインと言うそうです。文章、コード自由に引用改変公開しても問題ありません。 最終更新日:2014/1/29 追加: 文字列 演算子など はじめに:CoffeeScriptのメリットとデメリット 一般に言われているCoffeeScriptを使うメリットデメリットを載せておきます。 ま、こんな論争気にせず、使っ
FireBugのDebuggerとは、JavaScriptの特定部分にブレークポイントを設定し、ステップイン/ステップアウト等、ステップ実行をすることが出来ます。 例えば、次のプログラムを作ってFirefox上で開いてみてください。 <script type="text/javascript"> <!-- function execute() { var a = 10; var b = 3; var c = a * b; alert(c); } //--> </script> <a href="#" onclick="execute()">実行</a> そして、Debuggerタブを開き、5行目をクリックすると次の画像のように、赤丸が行頭に付きます。 これをブレークポイントの設定といいます。 ここで、ブラウザ上に表示されている「実行」リンクをクリックしてみましょう。 すると次の画面が表示さ
以下のように設定しておくと関数の呼び出し元の関数を調べることが出来る。 function a(){ b(); } function b(){ console.log(arguments.callee.caller) alert("hoge") } a() callerをどんどんたどるともっと呼び出しもとの関数をたどることができる。 function a(){ b(); } function b(){ var currentFunction = arguments.callee.caller; while (currentFunction) { console.log(currentFunction.toString()); currentFunction = currentFunction.caller; } alert("hoge") } a() 参考サイト:IE上のJavaScript
JavaScriptのthisは同じソースコードでも呼び出し元次第で意味が違ったりして複雑だと思われがちだけど、一回覚えてしまえば簡単だ。 JavaScriptにはthisが4種類ある これだけをしっかり覚えておけば、後は必要な時に 4種類って何があるんだっけ? と考えれば容易に思い出せる。 ちなみに、下記のコードはブラウザ上で実行することを想定している。(なのでwindowを使う) トップレベルのthis グローバルオブジェクトを指す。 var hoge = "fuga"; window.foo = "bar"; // fuga+bar と表示される console.log(this.hoge + "+" + this.foo); (function(){ // 同じくfuga+bar と表示される console.log(this.hoge + "+" + this.foo); })(
前回までのおさらいと今回のあらすじ 前回までの記事で、JavaScriptでオブジェクト指向を行うにあたって必要な知識を一通り網羅しました。その中で、オブジェクトに属する関数=メソッドについても触れました。 今回は、オブジェクトやメソッドと深い関わりのあるキーワード、「this」について解説したいと思います。 thisキーワードについてきっちり理解する 「thisキーワードについてお話しする」と言いましたが、実はthisキーワードは連載中で既に触れています。連載第9回で、このように述べています。 「(thisキーワードは)実行中のコードが「自分自身」を表すオブジェクトにアクセスするためのキーワードです。」 「実行中のコード」とされているのは、関数(メソッド)などの実行可能なコードということです。つまり、thisキーワードはメソッドをメンバに含むオブジェクトを指す、と言って良いでしょう。 例
こんにちは、太田です。前々回、前回とJavaScriptにおける継承について学習しました。今回はそれに深く関わるthisについて学んでいきます。 JavaScriptのthisはややクセのある動作をするように思えるかもしれませんが、仕組みをしっかり把握すれば実に簡単です。特に重要なのは次の2点です。 thisが何を指すかは関数の呼び出し方で決定する thisは関数スコープに存在する特殊な変数である インスタンスとしてのthis では、まずはコンストラクタ内でのインスタンスとしてのthisを見てみましょう。 コンストラクタとthis function A(name){ this.name = name; } A.prototype.getThis=function(){ return this; }; var a = new A('aaa'); console.log(a); console
Swift is the best programming language you should learn and make your dream app easily. Swift programming is a powerful yet easy-to-learn coding language created by Apple. It's frequently used for developing iOS and macOS applications, as well as tvOS and watchOS apps. While you can use other languages to create Apple apps, Swift is the preferred language, and it's recommended because its code is
明示的 意味 แพลตฟอร์มการเรียนรู้และพัฒนาทักษะด้วยเทคโนโลยี https://suin.io เป็นแพลตฟอร์มที่ให้คุณเรียนรู้และพัฒนาทักษะทางเทคโนโลยีอย่างสะดวกสบาย เรามุ่งมั่นในการให้ความรู้และประสบการณ์ที่มีคุณค่าในการพัฒนาตนเอง pascalcase
jQueryでhtmlタグに任意の属性が存在するかどうかを確認する方法のメモです。チェックボックスがチェックされているかどうかを確認するときなどに役立ちます。 jQueryにはhasClass()というクラスが存在するかどうか調べるメソッドがあります。だから属性の有無を調べるhasAttr()もあるだろうと思い込んでいたのですが無いんですね。つまり以下で紹介するのはhasAttr()を実現する方法でもあります。 <input id='target' type='checkbox'> <script> var attr = $("#target").attr("checked"); if( typeof attr !== 'undefined' && attr !== false ){ //チェックされていた場合の処理 }else{ //チェックされていなかった場合の処理 } </scrip
こんばんは、サドルのない生活にも随分慣れた高橋です。 いきなりですが、JavaScript面白いですよね!んでガリガリ書いてコード膨らんでしまって若干依存があって分割めんどくせー!という経験をされた方はいませんか?もしかしたら「あんな事したいなぁ」が Underscore.js でスマートに解決するかもしれませんよ。 Underscore.js とはユーティリティライブラリです。非依存のため、稼働中のアプリケーションにも導入できます。 実績については Backbone.js に組み込まれているのもあって十分でしょうか。 使い方は _.size() みたいな書き方で超簡単。 ものすごいUnderscoreです・・・ さて、数あるライブラリの中でUnderscore.jsを使う理由なんですが、やはりドキュメントが充実していう点でしょうか。これに一度目を通しておけば、あれやこれやしなくて済むかも
DataTablesプラグインとは tableタグを装飾してくれるjQueryプラグイン。 http://www.datatables.net/ 他のtableタグを装飾してくれるプラグイン 「Flexigrid」 http://flexigrid.info/ 「Ingrid」 http://www.reconstrukt.com/ingrid/index.html ちなみに、これらを知った経緯は「jquery table」でググって出てきた この記事を見たから。 http://www.designwalker.com/2009/09/jquery-table.html どうしてこのプラグインを選んだか サンプルプログラムやAPIなどがまとめられており、ドキュメントがしっかりしているから。 これに尽きる。 Flexigridは機能は良いが、ドキュメントが見つからなかったので使用をやめた。
ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog Yahoo!デベロッパーネットワークの中野(@Hiraku)です。これまで、JavaScriptで非同期処理を書く上での問題として、コールバック地獄やエラー処理に例外が使えないことなどを解説してきました。 これらの問題に対処するライブラリの1つであるjQuery.Deferredに関して、もう少し丁寧に解説いたします。なお、jQueryのバージョンは記事執筆時点の最新である、1.9.1を想定しています。 jQuery.Deferredとは jQuery.DeferredとはjQueryのバージョン1.5から導入された、非同期処理をうまく扱うための標準モジュールです。使いこなすことで、以下のような効果が見込めます。 非同期処理を連結
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く