ホームページ > 記事 > ウェブフロントエンド > jsオブジェクトの外部アクセスまたはproblem_javascriptスキルの呼び出し
以下は私のコードです:
<script> <br>this.a; <br>this.b; <br>abc.prototype = { <br>getData:function(){ <br>var c = function(num){ <br>alert(num); <br>this.b = num; <br>c('12345' ); <br>}, <br>clearData:function(){ <br>this.getData(); <br>} <br>} <br>var d = new abc(); <br>d.clearData(); <br></script>
var c = function(num){
alert(num); this.b = num;
c('12345');
取得した num を最初に定義した this.b に渡したいのですが、これはできません。書き方がわかりませんか? 現在の形式は変更できません。変更できるのは c = function(){ here} だけです。
は次のように理解できます。 引用:
function functionName(arg){...} ;
functionName(argvalue); この形式で関数を使用するのが最も一般的です。
「()」(括弧)で囲まれたステートメントを「名詞」に変えることができます。引用:
(関数(仮パラメータ){関数本体}) は匿名関数を括弧で囲み、コードの他の部分にとっては「名詞」と同等になります。
したがって、参照:
(関数(仮パラメータ){関数本体})(実パラメータ) は、上記の最も一般的な参照と同じくらい理解しやすいです:
関数名 (実パラメータ)はい、それは匿名関数を定義し、それをすぐに呼び出すことを意味します。引用:
c = (function(that){return function(num){alert(num);that.b = num}})(this) は匿名関数を定義し、それをすぐに呼び出します。この関数は匿名関数を返します。の場合、返された関数には名前 c が割り当てられます。
ここでは、this オブジェクトが実パラメータとして仮パラメータに渡され、abc インスタンス オブジェクトの参照が内部の匿名関数に提供されます。
つまり、c は abc インスタンス オブジェクトにアクセスできる関数になります。
技術的な記事、好きです
こんな書き方もできます