[JavaScript]callメソッドを使って無名関数を呼び出すサンプル

書式
1.配列内の各オブジェクトの定義

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
const 配列名 = [
{引数1:値1,引数2:値1},
{引数1:値2,引数2:値2},
]
const 配列名 = [ {引数1:値1,引数2:値1}, {引数1:値2,引数2:値2}, 略 ]
const 配列名 = [ 
     {引数1:値1,引数2:値1},
       {引数1:値2,引数2:値2},
     略
   ]

2.無名関数の定義
(function(i) {
this.result = function(){処理コード}
this.result();
ここでの無名関数の主な目的は、 result関数をすべてのオブジェクトに追加することで、配列内のオブジェクトの正しいインデックスを表示できるようにします。

使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/*配列内の各オブジェクトの定義*/
const users = [
{ city: '大阪', name: '山田 太郎' },
{ city: '東京', name: '佐藤 次郎' },
{ city: '福岡', name: 'テスト次郎' }
];
for (let i = 0; i < users.length; i++) {
//無名関数
(function(i) {
// result関数の定義
this.result = function() {
console.log('#' + i + ' ' + this.city
+ ': ' + this.name);
}
//result関数を呼び出す
this.result();
}).call(users[i], i);
}
/*配列内の各オブジェクトの定義*/ const users = [ { city: '大阪', name: '山田 太郎' }, { city: '東京', name: '佐藤 次郎' }, { city: '福岡', name: 'テスト次郎' } ]; for (let i = 0; i < users.length; i++) { //無名関数 (function(i) { // result関数の定義 this.result = function() { console.log('#' + i + ' ' + this.city + ': ' + this.name); } //result関数を呼び出す this.result(); }).call(users[i], i); }
/*配列内の各オブジェクトの定義*/
const users = [
  { city: '大阪', name: '山田 太郎' },
  { city: '東京', name: '佐藤 次郎' },
  { city: '福岡', name: 'テスト次郎' }
];

for (let i = 0; i < users.length; i++) {
  //無名関数
  (function(i) {
    // result関数の定義
    this.result = function() {
      console.log('#' + i + ' ' + this.city
                  + ': ' + this.name);
    }
    //result関数を呼び出す
    this.result();
  }).call(users[i], i);
}

実行結果

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
> "#0 大阪: 山田 太郎"
> "#1 東京: 佐藤 次郎"
> "#2 福岡: テスト次郎"
> "#0 大阪: 山田 太郎" > "#1 東京: 佐藤 次郎" > "#2 福岡: テスト次郎"
> "#0 大阪: 山田 太郎"
> "#1 東京: 佐藤 次郎"
> "#2 福岡: テスト次郎"

 

JavaScript

Posted by arkgame