この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 9340|答える: 0

[JavaScript] このJavaScriptの詳細な説明

[リンクをコピー]
掲載地 2020/09/28 19:04:30 | | | |
まず第一に、関数が定義された時点でこの点は決定できず、関数が実行されて初めて誰を指すのかが判明できる。実際、この文の最終点はそれを呼び出す対象である(この文にはいくつかの問題があり、なぜ問題があるのかは後述するが、インターネット上の多くの記事はそう述べているが、多くの場合その理解に問題はない。しかし実際にはその理解は正確ではない。 これを理解すると、理解できない感覚を抱くでしょう)、この問題を深く掘り下げていきます。

テストは以下の通りです:




これは機能の目的に応じて異なる値を持ちます。 一般的に、これは関数が動作する環境オブジェクトです。 この使い方については、4つの状況で詳しく議論されています。

ケース1:純粋関数呼び出し

これは関数の最も一般的な使い方であり、グローバル呼び出しであるため、グローバルオブジェクトを表します。 下のコードを見てみると、結果は1で動作します。


ケース2:Call as a object メソッド

関数はオブジェクトのメソッドとしても呼び出せ、その場合は親オブジェクトを指します。


ケース3 構成子としての呼び出し

いわゆるコンストラクタはこの関数を通じて新しいオブジェクトを生成できます。 ここで言うのは、この新しい物体を指します。


このランの結果は1です。 現時点でグローバルオブジェクトではないことを示すために、コードにいくつかの変更を加えます。



実行の結果は2であり、グローバル変数xの値が全く変わっていないことを示します。

ケース4 申請 コール

apply() は関数の呼び出しオブジェクトを変更するメソッドです。 最初のパラメータは、関数を呼び出す変更されたオブジェクトを表します。 したがって、これはこの最初のパラメータを指します。


apply() パラメータが空の場合、グローバルオブジェクトはデフォルトで呼び出されます。 したがって、実行の結果は0となり、これがグローバルオブジェクトを指していることが証明されます。

もし最後のコードの行を


実行結果は1となり、これが対象objを表すことを証明します。

(終わり)


参考:

ハイパーリンクのログインが見えます。
ハイパーリンクのログインが見えます。





先の:[実際の戦闘] ASP.NET コアはRedis分散ロックフラッシュセールをベースにしています
次に:Restful Patchとプットリクエストの違い
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com