URLの情報を獲得後にデータを処理しようとしています。
classの中でXMLHttpRequestを実行して、class内の関数へのアクセスにしました。
しかし、スコープの関係と思いますが、エラーが発生します。
また class変数への代入方法ができていないようです。
どのようにして、外部への値保存&関数呼び出しを実行すればよいでしょうか?
よろしくお願いします。
javascript
1class webreq = class { 2 constructor( act, name, path) { 3 this.act = null; 4 this.url = null; 5 this.itemJson = null; 6 } 7 8 getXhr(){ 9 console.log(this.url); 10 var act = this.act; //引数はvarで渡しています 11 12 let xhr= new XMLHttpRequest(); 13 xhr.open('GET', this.url, true); 14 xhr.send(); 15 xhr.onreadystatechange = function() { 16 17 // ここからスコープが変わるのだと思っています。 18 if (xhr.readyState == 4 && xhr.status == 200) { 19 let resText = xhr.response.toString(); 20 const matches = resText.match(/var initialData = (.*?);</script>/); 21 if(matches){ 22 resText = matches[1]; 23 24 // ↓ class変数の代入ではなさそう 25 this.itemJson = JSON.parse(resText); 26 } 27 28 // this.act だとエラーになるので var act で受け取り 29 if( act ){ 30 // ↓ ここでエラーになります。 31 this.setListVideoData(); 32 } 33 } 34 } 35 } 36 setListVideoData () { 37 //ここでいろいろデータ加工しています 38 } 39}
回答1件
あなたの回答
tips
プレビュー