2016-04-18 18 views
1

私のプロジェクトでPhpStormのJavaScriptファイルに警告が表示されています。これについては何かお伝えしたいと思います。 PHPは、私にこの警告を与え、コードに示されている行でPhpStorm警告:引数タイプがパラメータタイプに割り当てられません

function someFunction() { 
    ... 
    var myArray = [1, 2, 3, ...]; 
    $.each(myArray, function() { someOtherFunction(this); }); //warning on this line 
    .... 
} 

/** 
* @param {Number} value 
*/ 
function someOtherFunction(value) { 
    ... 
} 

引数の型someFunctionは、パラメータタイプ数

に割り当てていない私は、このようなコードを持っていますPhpStormは、jQueryが.eachループコールバック内のthisコンテキストを再定義することを知る方法がありません。私の質問は、このような再定義が起こっていることを暗示するために何ができるのですか。thisは本当にそのコンテキストにありますか?ここ

答えて

0
function someFunction() { 
    ... 
    var myArray = [1, 2, 3, ...]; 
    $.each(myArray, function(i, val) { someOtherFunction(val); }); //warning on this line 
    .... 
} 

http://api.jquery.com/jquery.each/ jQueryのドキュメントには、コールバック関数の引数は、実際の値を処理するものであることを示しています。渡された最初の引数は配列インデックスであり、2番目の引数は値に渡されます。これはあなたが求めるものです。

事はthisは基本的な価値に過ぎません。 jQueryは常にそれをオブジェクトとしてラップします。

+0

_jQueryは常にobject_ - trueとしてラップしますが、コードは期待どおりに機能します。 –

+0

@AleksGああ、確かだけど、問題は、PHPStormがプリミティブな番号(または、おそらくNumberオブジェクト)で、番号を持つオブジェクトではないことを期待しているということです。うーん、これを試してみてください。これは全体的な推測ですが、someOtherFunction(+ this);を行うとどうなりますか? – aaronofleonard

関連する問題