JavaScriptカスタムオブジェクトメソッドの概要

JavaScriptカスタムオブジェクトメソッドの概要

1. オブジェクトを使用してオブジェクトを作成する

<スクリプト>
        // オブジェクトを作成する var stu = new Object()
        // オブジェクトに属性 stu.name='jibu' を追加します
        stu[9527] = 'jibu' // 特殊な属性名は括弧を使用する // オブジェクトにメソッドを追加する stu.study = function(){
            console.log('学習')
        }
        // オブジェクトのプロパティとメソッドを呼び出す console.log(stu.name,stu['name'])
        //メソッド stu.study() を呼び出す
    </スクリプト>

2. コンストラクタを使用してオブジェクトを作成する

<スクリプト>
        // 1. オブジェクトを作成するためのコンストラクタを定義する function Student() {
            // オブジェクトプロパティ this.name = 'jibu'
            年齢 = 18
                //オブジェクトメソッド this.study = function() {
                console.log('学習中...')
            }
        }
        // 2. コンストラクターを呼び出してオブジェクトを作成します var stu = new Student()
        console.log(stu.name)
        勉強()

        // パラメータ付きのコンストラクタを定義する // オブジェクトを作成するためのコンストラクタを定義する function Student(name, age) {
            // オブジェクトプロパティ this.name = name
            this.age = 年齢
                //オブジェクトメソッド this.study = function() {
                console.log('学習中...')
            }
        }
        //コンストラクタを呼び出してオブジェクトを作成します var stu = new Student('tom', 18)
        console.log(stu.name)
        勉強()
    </スクリプト>

3つの文字オブジェクト

var stu = {
            名前: 'jibu',
            年齢: 100,
            「特殊変数」: 1111
            研究: 関数() {
                console.log('学習中')
            },
            表示: 関数() {
                console.log('私の名前は' + this.name, '年齢:' + this.age)
            }
        }
        console.log(stu.name)
        console.log(stu['特殊変数']

このキーワード4つ

これは現在のオブジェクトを表します

  • 関数内のthisは、関数を呼び出す現在のオブジェクトを参照します。
  • thisイベントバインディングの匿名コールバック関数で、イベントソースを示します。
  • コンストラクタ内のこれは、将来new作成される現在のオブジェクトを表します。

例1

<スクリプト>
        // 関数内の this は関数の呼び出し元を参照します var a = 1

        関数f1() {
            変数a = 2
            console.log(これ)
                // ローカル変数とグローバル変数が同じ名前を持つ問題を解決する console.log('local variable: ', a)
            console.log('グローバル変数: ', window.a)
            console.log('グローバル変数: ', this.a)

        }
        f1()
    </スクリプト>

例2

 <スクリプト>
        window.onload = 関数() {
            document.querySelector('#btn').onclick = 関数() {
                console.log(this) //ここで、これはイベントをトリガーするイベント ソースのターゲット要素を表します}
        }
    </スクリプト>
</head>

<本文>
    <button id="btn">ボタン</button>
</本文>

例3

<スクリプト>
        関数 学生(名前, 年齢) {
            // コンストラクタ内の this は、将来新しく作成される現在のオブジェクトを表します。this.name = name
            this.age = 年齢
        }
    </スクリプト>

5つの基本データ型と参照データ型

基本的なデータ型

文字列、数値、ブール値、未定義、null

<スクリプト>
        変数a = 5
        var b = a
        8 です
        コンソールログ(a)
        コンソールログ(b)
    </スクリプト>

変数abを参照する変数bを作成することは、コピーを割り当てることと同等であり、変更は互いに影響しません。

参照データ型

オブジェクト、配列、学生…

<スクリプト>
        var stu1 = {
            名前: 'トム',
            年齢: 18
        }
        var stu2 = stu1; // stu1のアドレスをstu2に割り当てる
        stu1.name = 'アリス'
        コンソールログ(stu1.name)
        コンソールログ(stu2.name)
    </スクリプト>

ここでは、操作は基本データ型と同じですが、結果は異なり、互いに影響し合うことがわかります。
これは記憶の問題に関係している

メモリには 2 つの種類があります。

スタックメモリ:

基本データ型の変数と参照データ型の変数への参照はスタックメモリに格納され、アクセス速度は比較的高速です。

ヒープメモリ:

参照データ型の変数はヒープメモリに格納されるため、アクセス速度が遅い

参照データ型の変数はスタック (メモリ アドレス) に格納され、そのオブジェクトはヒープに格納されます。Stu1 を参照する Stu2 は実際には同じメモリ アドレス参照であり、すべての変更が行われた場合の結果は同じです。

基本データ型の変数と値はスタックに格納されます。a の値は b に与えられ、すべての変更は互いに影響しません。

6つの閉鎖

閉鎖をどう理解するか?

  • 関数は関数内で定義されます。この関数はクロージャと呼ばれます。
  • クロージャは、他の関数内の変数を読み取ることができる関数です。
  • クロージャは、スコープ内で定義され、そのスコープ内のすべての変数にアクセスできる関数です。
  • 機能の面では、クロージャは関数の内部機能と外部機能を接続するブリッジです。

クロージャの使用

  • 関数内では、関数内の変数を読み取ることができます
  • 変数の値をメモリに保存する

クロージャの使用

   <スクリプト>
        関数add(){
            (var i = 1; i <= 5; i++) の場合 {
                var li = document.createElement('li')
                li.innerText = 'li' + i
                li.onclick = 関数() {
                    console.log('クリック' + i + 'li')
                }
                document.getElementById('myul').appendChild(li)
            }
        }
    </スクリプト>
    <スタイル>
        ul {
            幅: 300ピクセル;
            高さ: 300px;
            境界線: 1px 実線 #ccc;
        }
    </スタイル>
</head>

<本文>
    <button onclick="add()">要素を追加</button>
    <ul id="myul">

    </ul>
</本文>



要素ボタンがクリックされるとループが終了するため、取得されるのは最後の要素のみであり、これがクロージャを形成します。

解決策1:

関数内で定義するのではなく、関数の外で定義し、関数内で呼び出します。

<スクリプト>
        関数add(){
            (var i = 1; i <= 5; i++) の場合 {
                var li = createLi(i)
                document.getElementById('myul').appendChild(li)
            }
        }

        関数createLi(num) {
            var li = document.createElement('li')
            li.innerText = 'li' + 数値
            li.onclick = 関数() {
                console.log('クリック' + num + 'li')
            }
            戻る
        }

解決策2:

変数を格納するために要素に属性を追加する

<スクリプト>
        関数add(){
            (var i = 1; i <= 5; i++) の場合 {
                var li = document.createElement('li')
                li.innerText = 'li' + i
                li.num = i; //データを保存 li.onclick = function() {
                    console.log('クリック' + this.num + 'li')
                }
                document.getElementById('myul').appendChild(li)
            }
        }
    </スクリプト>

解決策3:

letを使った変数の定義

ブロックレベルスコープでは、変数が宣言されている領域は外部要因の影響を受けず、一時的な死と呼ばれます。

<スクリプト>
        関数add(){
            (i = 1; i <= 5; i++ とします) {
                var li = document.createElement('li')
                li.innerText = 'li' + i
                li.onclick = 関数() {
                    console.log('クリック' + i + 'li')
                }
                document.getElementById('myul').appendChild(li)
            }
        }
    </スクリプト>

7つのJSON

JavaScript Object NotationJavaScriptオブジェクトを表すために使用される軽量のデータ交換形式です。プログラミング言語に依存しないテキスト形式を使用し、書き込みや読み取りが簡単で、解析や生成も簡単です。

基本的な使い方

{“屬性名”:“屬性值”,“屬性名”:“屬性值”…}

知らせ:

  • Json構造はJsonオブジェクトと呼ばれる一連のキーと値のペアで構成されています。
  • 属性名には二重引用符を使用する
  • Json とオブジェクト リテラルの違い: JSON 属性では二重引用符を使用する必要がありますが、オブジェクト リテラルでは二重引用符が不要です。

属性に準拠する

<スクリプト>
        //複合属性値はJSONオブジェクトです var user = {
            "名前": {
                "firstName": "ji",
                "姓": "bu"
            },
            「年齢」: 100
        }
        console.log(ユーザー名.firstName)
    </スクリプト>

Jsonオブジェクトのコレクション

<スクリプト>
        //複合属性値はJSONオブジェクトです var user = [{
                    "id": 1,
                    "firstName": "ji",
                    "姓": "bu"
                }, {
                    "id": 1,
                    "firstName": "ji",
                    "姓": "bu"
                }, {
                    "id": 1,
                    "firstName": "ji",
                    "姓": "bu"
                },

            ]
            //ループ for (var i = 0; i < user.length; i++) {
            コンソールログ(ユーザー[i])
        }
    </スクリプト>

JSON操作

 <スクリプト>
        //JSonオブジェクトを文字列に変換する var stu = {
            "id": 1,
            「名前」:「治部」
        }
        console.log(typeof stu)
        var str = JSON.stringify(stu);
        console.log(文字列型)


        // 文字列をJSONに変換する
        var str = '{"id": 1,"name": "jibu"}'
        console.log(文字列型)

        var obj = JSON.parse(str)
        console.log(obj 型)
    </スクリプト>



JavaScriptカスタム オブジェクトに関するこの記事はこれで終わりです。JavaScript カスタム オブジェクトに関するより詳しい情報については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • JavaScript のオブジェクトを理解する
  • Javascript のオブジェクトの詳細な説明
  • JavaScriptオブジェクトの詳細な概要
  • JS でオブジェクト属性が存在するかどうかを判断する 5 つの方法
  • JavaScriptはオブジェクトの不要なプロパティを削除します
  • springboot post インターフェースが json を受け入れる場合、それがオブジェクトに変換されると、プロパティはすべて null になります。
  • JavaScript でよく使われる 5 つのオブジェクト
  • 複雑なJSON文字列をJavaのネストされたオブジェクトに変換する実装
  • JavaScriptオブジェクトの追加、削除、変更、クエリのアプリケーションと例を理解する

<<:  HTMLウェブページの基本概念の簡単な分析

>>:  Hタグの定義と注意事項について簡単に説明します

推薦する

HTML+CSS+jQuery はスクリーンショットで検索ホットリストタブ効果を模倣します

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

JS でページのスクリーンショット機能を実装する方法

「ページのスクリーンショット」は、ページポスターの生成、ポップアップ画像の共有など、フロントエンドで...

MySQL 5.7 でルートパスワードを忘れた後に変更する方法の詳細なチュートリアル

序文長い間、MySQL のアプリケーションおよび学習環境は MySQL 5.6 以前のバージョンであ...

Linux環境にMySQLデータベースをインストールする詳細なチュートリアル

1. データベースをインストールする1) yum -y install mysql-server (...

MySQL統計の概要

MySQL は、SQL 解析とクエリ最適化のプロセスを通じて SQL を実行します。パーサーは SQ...

HTML ウェブページハイパーリンクタグ

HTML ウェブ ページのハイパーリンク タグの学習チュートリアル リンク タグの属性 リンクは、ウ...

LinuxとGNUシステムの関係の詳細な説明

目次私たちが毎日実行している Linux システムとは何でしょうか? LinuxカーネルとGNUシス...

MySQL で絵文字表現を挿入できない理由と解決策

失敗のシナリオMySQL データベースに絵文字表現を挿入するために JDBC を呼び出すと、例外ja...

Windows 10 での Tomcat のインストールと展開に関する詳細なチュートリアル

目次1 Java環境の設定2 tomcatのインストールと展開Tomcat をインストールして展開す...

CSS で要素を垂直方向に中央揃えする 7 つの方法

【1】中央の要素の幅と高さを知る絶対値 + 負のマージンコードの実装 .wrapBox5{ 幅: 3...

CSS3 パッケージ化後にプレフィックスプラグインを自動的に追加する方法の詳細な説明: autoprefixer

vue-cli で構築されたプロジェクト スキャフォールディングでは、すでに autoprefix...

CSS初心者向けチュートリアル: 背景画像を画面全体に表示する

インターフェース全体に背景画像を表示したい場合は、当然 body に背景を追加することを考えます。コ...

Vueはボタン切り替え画像を実装します

この記事では、ボタン切り替え画像を実現するためのVueの具体的なコードを例として紹介します。具体的な...

Vueはシンプルなショッピングカートの例を実装します

この記事では、参考までに、Vue の具体的なコードを共有して、簡単なショッピングカートを実装します。...

iOS WeChat H5ページのゴム反発効果の落とし穴記録

ビジネス要件最近開発したプロジェクトの一つに、WeChat公式アカウントに関連したH5ページがありま...