ホームページ  >  記事  >  ウェブフロントエンド  >  これをjsで使用する方法

これをjsで使用する方法

php中世界最好的语言
php中世界最好的语言オリジナル
2017-11-17 18:01:212557ブラウズ

これは JS で何を意味しますか?

これは JS で常に使用されます。今日は、人々を混乱させやすいこれが何であるか、そしてこれをどのように使用するかについて説明します

これは 1 、通常の 関数 のポイントを指します。関数の呼び出し元に通知します。簡単な方法は、関数の前にドットがあるかどうかを確認することです。ドットがある場合は、そのドットの前の値をポイントします。2. アロー関数はドメインをポイントします。関数が配置されている場所: 関数のドメインを理解することに注意してください。関数の {} のみがスコープを構成し、object の {} と if(){} はスコープを構成しません。

通常の関数、呼び出し元は obj であるため、結果は objname になります。これは、say() が通常の関数であり、先頭にドットがあるため、obj を指します。


arrow 関数、これはスコープを指します。関数が見つかり、現在のスコープはグローバル環境であるため、this.name は未定義です。

次の例を更新してください。これでアロー関数の方向が明確に理解できます。アロー関数のスコープは通常の関数です。 Say() の呼び出し元は obj

const obj = {
name: 'objName',
say() {
console.log(this.name);  
      }, 
read: () => {
     console.log(this.name);
             }
       }
obj.say(); // objName
obj.read(); // undefined

obj.say(); // obj、この時点では this を指します 彼を定義する obj です



追加の知識ポイント


ブラウザのデフォルトの this は window

const obj = { 
say: function () {
  setTimeout(() => {
   console.log(this)
                  });
                 }
             }

test(); //window

node.js
のグローバル環境のデフォルトの this は {}、通常の関数のデフォルトの this は global

function test() {  
console.log(this);
}

マスターしたかどうかを確認するための 2 つの質問があります


example1

console.log(this); // {}
function test() {
 console.log(this);
}
test(); //global

Output 10, 2

最初にこの質問を見たときは混乱しましたが、今ではメソッド関数が 2 つのパラメーターを渡すことがようやく理解できました1 つのパラメータは fn() です。fn() は通常の関数です。これは関数の呼び出し元を指し、この時点ではグローバル世界を指します (この関数の前にドットがないこともわかります)。実行結果は 10 になります。引数は、クラス

array

のオブジェクトである関数のすべてのパラメーターです。この関数は引数によって呼び出されます。今回は、これは引数を参照し、this.length は angument.length を参照します。これは 2 で渡されるパラメータの合計数です

注: ノード環境での上記の例の実行結果は、未定義の 2、const length です。 = 10 は global .length = 10; に変更されます。これは、ノード環境でグローバルに定義された

変数
が global にバインドされず、ブラウザーが自動的にグローバル環境ウィンドウにバインドされるためです

次のように変更されました?

const length = 10;
function fn() {
console.log(this.length);
}
const  obj = {
  length: 5,
  method: function(fn) { 
  fn();
  arguments[0]();   
  }
};
obj.method(fn, 1);

これは少し複雑ですが、段階的に分析すると簡単に理解できます:


obj.dbl(); このコード行を実行すると、これは obj を参照します。したがって、この行を実行すると、 this.val === obj.val *=2、最終結果は 4、val*=2 === window.val *= 2、最終結果は 2

func() になります。このコードでは、func() にはプレフィックスがありません。これは window.func() を参照します。したがって、この時点の this の値は window、this.val === window.val *= 2、この時点では window です。 valは4、val*=2 === window.val *2、最終結果は8です。 最後に、console.log(this.val)とconsole.log(val)は両方ともwindow.valを参照しています。

上記は、これについての私の理解です。この記事に関してご質問がございましたら、お気軽にお問い合わせください。


関連する推奨事項:

JavaScript オブジェクト指向の基本とこの問題点を理解する方法

this と JS のイベントの違いの詳細な説明

this、apply、call、bind の関連紹介JSで

以上がこれをjsで使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。