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 型) </スクリプト>
以下もご興味があるかもしれません:
|
目次1. MySQLインストールパッケージをダウンロードする2. MySQLのアンインストール手順3...
要件は、製品の評価データを渡すことであり、ページには対応する星の数が表示されます。 1. 異なる評価...
設定ファイルを server.xml と content.xml に書き込みます。サーバーを再起動す...
目次1. HBuilderXビジュアルインターフェースを通じて2. vue-cliコマンドで実行する...
基本イメージが以前に構成されていて、これらのイメージが他の場所でも必要な場合はどうなりますか?回答:...
目次MVCとMVVMの違い前述のMVCC の概要長所と短所MVVM概要MVVM 実装者 — Vue ...
問題 1: Baidu Map はタイル画像 (地図が写真で構成されている) を使用しています。ht...
主に低バージョンのブラウザ向け<!-- --> は HTML コメント タグです。上位バ...
参考までにmysql5.5.28のインストールチュートリアルです。具体的な内容は次のとおりです。イン...
Redis の紹介Redis は完全にオープンソースで無料であり、BSD プロトコルに準拠しており、...
目次原因理由NPM の紹介: CNPM の紹介:より良い方法方法の改善npm と cnpm を一緒に...
この記事では、二次リンクを実現するためのReactの具体的なコードを参考までに共有します。具体的な内...
目次01 sql_slave_skip_counter パラメータ02 スレーブスキップエラーパラメ...
目次計算結果を初期化する依存関係の収集アップデートを配布する総括するこの記事では、計算された初期化と...
公式サイトから MySQL をダウンロードしてインストールし、クライアントにログインするにはどうすれ...