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つこれは現在のオブジェクトを表します
例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) </スクリプト> 変数 参照データ型オブジェクト、配列、学生… <スクリプト> 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: ブロックレベルスコープでは、変数が宣言されている領域は外部要因の影響を受けず、一時的な死と呼ばれます。 <スクリプト> 関数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 基本的な使い方
知らせ:
属性に準拠する<スクリプト> //複合属性値は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 型) </スクリプト>
以下もご興味があるかもしれません:
|
ffmpeg は非常に強力なオーディオおよびビデオ処理ツールです。公式 Web サイトは http:...
XML スキーマは、DTD に代わる XML ベースのものです。 XML スキーマは、DTD に代わ...
目次起源環境情報トラブルシューティングのプロセス要約する起源顧客は CentOS をベースにしたカス...
目次1. Gojsの実装1. 描画2. 破線の実装3. 点線を動かす2. 点線と点線アニメーションの...
ソースコード(一部のクラスは削除されています):コードをコピーコードは次のとおりです。 <テー...
今日は、参考までに、jsを使用してカルーセルマップの効果を実現する方法についてお話ししましょう。具体...
エラーシナリオcmd の mysql コマンドを使用して、学生情報テーブルにデータを追加します。デー...
docker-compose-monitor.yml バージョン: '2' ネットワ...
Nginx の紹介Nginx は、高性能な HTTP およびリバース プロキシ サーバーであり、IM...
ハイパーリンクの下線を削除するには、スタイルシート CSS を使用する必要があります。当面は CSS...
jQueryプラグインの毎日の積み重ねメニュー、参考までに、具体的な内容は次のとおりです。スタックメ...
この記事の例では、vue3 が独自のページングコンポーネントをカプセル化する具体的なコードを参考まで...
1. sql_modeを確認する @@sql_mode を選択照会された値は次のとおりです。 ON...
目次Jenkinsのインストールインストールポート番号を変更します(デフォルトのポートは8080です...
この記事では、ディスクを追加または拡張して、Vmare で有効にする方法について説明します。シナリオ...