このポイントのJavaScriptの基本

このポイントのJavaScriptの基本

JavaScript の this も不思議なものです。オブジェクト指向プログラミング (Java など) では、これは現在のオブジェクト参照を表します。ただし、JavaScript では this は固定されておらず、実行環境に応じて変化します。

これ

いつものように、まずはコードを見てみましょう。

方法

関数テスト(){
    console.log(これを);
}

ここに画像の説明を挿入

オブジェクト内

関数テスト(){
    console.log(これを);
}

ここに画像の説明を挿入

メソッドでは、this はメソッドが属するオブジェクトを参照します。最初のものは window のメソッドなので、window が出力され、eat メソッドは Person メソッドなので、オブジェクト Person が出力されます。

したがって、コンソールでこれを単独で使用すると、グローバル オブジェクトが表されることがわかります。

ここに画像の説明を挿入

これを隠した

オブジェクトでは、事前に 1 つずつ宣言できます。

var Person1 = {
    名前:"張三",
    年齢:18
}
var Person2 = {
    名前:"Li Si",
    年齢:19
}

これを書くのは非常に面倒なので、次のように Java クラスの概念から学ぶことができます。

var Person = 関数 (名前, 年齢) {
    this.name=名前、
    this.age=年齢
       
}
var Person1=new Person("张三",18);
var Person2 = new Person("李斯",19);

ここに画像の説明を挿入

実際、new には return this が隠されています。new を使用しないと、新しく作成されたオブジェクトが返されないことがわかります。

ここに画像の説明を挿入

では完成させましょう:

var Person = 関数 (名前, 年齢) {
    this.name=名前、
    this.age=年齢
    これを返します。
}
var Person1=new Person("张三",18);
var Person2 = new Person("李斯",19);

ここに画像の説明を挿入

この方法では、次の効果を偽装することもできます。

var Person = 関数 (名前, 年齢) {
    var = {};
    that.name=名前、
    that.age=年齢
    それを返す;
}
var Person1=new Person("张三",18);
var Person2 = new Person("李斯",19);

ここに画像の説明を挿入

厳密モード

これは、厳密モードと非厳密モードで魔法のような動作をします

関数テスト() {
  これを返します。
}

# js の前に「use strict」を追加すると、厳密モード「use strict」を意味します。
関数テスト() {
  これを返します。
}

ここに画像の説明を挿入

これは、非厳密モードの関数では、関数の所有者がデフォルトでこれにバインドされていることを示しています。したがって、グローバル値は印刷できますが、厳密モードでは関数はこれにバインドされないため、これは未定義になります。

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • JSの矢印関数におけるこのポイントの詳細な説明
  • このリファレンスとJavaScriptのカスタムプロパティの詳細な説明
  • JavaScript における this ポイントの問題の詳細な説明
  • 関数の分類の詳細な説明とJavascriptでのこのポイントの例
  • JavaScript関数におけるこのポイントの問題の詳細な説明
  • JavaScript プロトタイプオブジェクトの this ポイント問題の詳細な説明

<<:  CSS フレックスベースのテキストオーバーフロー問題の解決方法

>>:  フロントエンドのパフォーマンス最適化を学ぶ準備として、HTMLページのレンダリングプロセスを理解する

推薦する

MySQLスローログクエリの詳細な説明

遅いログクエリ機能スロー ログ クエリの主な機能は、設定された時間しきい値を超える SQL ステート...

CentOS8でyumソースを変更した後にウェアハウスキャッシュの同期に失敗する問題の詳細な説明

問題の原因: 最初は CentOS 8 のデフォルトの yum ソースを正常に使用できますが、次のコ...

MySQLデータベースはMMM高可用性クラスタアーキテクチャを実装します

コンセプトMMM (Mysql のマスター マスター レプリケーション マネージャー) は、Perl...

Mysql 日付クエリの詳細な紹介

現在の日付を照会する CURRENT_DATE() を選択します。 CURDATE() を選択する;...

Zabbix を使用して Oracle データベースを監視する方法の詳細な説明

1. 概要Zabbix は非常に強力で、最も広く使用されているオープンソースの監視ソフトウェアです。...

Jenkins を通じて None のイメージを定期的にクリーンアップする方法

序文継続的なコード配信のプロセスで、Jenkins を利用して Docker イメージを作成すると、...

Vue コンポーネントの切り替え、動的コ​​ンポーネント、コンポーネントのキャッシュについて

目次1. コンポーネント切り替え方式方法1: v-ifとv-elseを使用する方法 2: 組み込みコ...

Nginx 最適化サービスで Web ページ圧縮を実装する方法

リソースを節約するためにWebページの圧縮を設定する1.まず、設定を変更しましょう vim /usr...

Windows 版 MySQL のインストール、起動、基本設定に関する詳細なグラフィック チュートリアル

ダウンロード:ステップ 1: ウェブサイトを開きます (ダウンロードするには公式ウェブサイトにアクセ...

bash を使って日付をカウントダウンする方法

重要なイベントまであと何日あるか知りたいですか? Linux bash と date コマンドが役に...

Win10にCentOS7仮想マシンをインストールする

1. VMware Workstation 64バージョンをダウンロードするhttps://www....

MySQLが正常にインストールされたかどうかを確認する方法

MySQL をインストールした後、DOS ウィンドウまたは MySQL 5.7 コマンドライン クラ...

Vue+echarts で積み上げ棒グラフを実現

この記事では、積み上げ棒グラフを実装するためのVue+echartsの具体的なコードを参考までに紹介...

ブログデザイン ウェブデザイン デビュー

私がデザインした最初の Web ページは次のとおりです。 私はこの業界に7年間在籍し、プログラミング...

MySQL チュートリアル: サブクエリの例の詳細な説明

目次1. サブクエリとは何ですか? 2. サブクエリはどこに表示されますか? 3. Whereサブク...