javascript - コールバック関数は現在の関数の値にどのようにアクセスしますか?
大家讲道理
大家讲道理 2017-05-16 13:35:48
0
4
543

関数内で 6 つの要素を含む配列変数を定義し、関数内でコールバック関数を呼び出しました。コールバック関数では配列変数の値にアクセスできませんが、長さ属性にはアクセスできます。とても混乱していて、どう解決すればいいのか分かりません。

リーリー

Book.getBookByISBN() は他のモジュールで定義した関数です

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全員に返信(4)
伊谢尔伦

だって

リーリー

それで

リーリー
いいねを押す +0
巴扎黑

bookARR[i]をコールバックに入れる

いいねを押す +0
左手右手慢动作

その理由は、実際には、Book.getBookByISBN() 関数でコールバック呼び出しを定義する場所に bookArr[i] を渡すためです

いいねを押す +0
漂亮男人

これは典型的な非同期問題であり、 i のスコープは依然としてその中にあります。
非同期で待ってるからgetBookByISBN 方法调用callback的时候 i=bookARR.length。这已经越界了,所以是undefined.

解決策:
1. 閉鎖
2.let

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート