blog

J41コンストラクタ

1.共通関数2.コンストラクタ1.Funcは共通関数と呼ばれなくなり、コンストラクタと呼ばれるようになりました2.返される結果もRETURNに基づいて返り値を決定するのではなく、返される結果は現在のク...

Oct 23, 2020 · 4 min. read
シェア

共通関数

メソッド内の this:windowでFunc関数を実行します。

function Func(name, age) { //=>this:window this.name = name; this.age = age; } let f1 = Func(' ', 10); console.log(f1); //=>undefined 戻り値のない関数には戻りがないからだ。 console.log(window.name, window.age); //=>チャン・サン 10 let f2 = Func(' ',30); console.log(f2); //=>undefined 戻り値のない関数には戻りがないからだ。 console.log(window.name, window.age); //=>李斯30

コンストラクタ

ES3構文の場合: new function() => この方法は、コンストラクタの実行方法に基づいています。

  • 1.Funcは通常の関数ではなく、コンストラクタと呼ばれるようになりました。

  • 2.返り値はRETURNに基づいて決定されなくなり、返り値は現在のクラスのインスタンスになります。

  • 3.カスタムクラスを作成し、クラスのインスタンスを作成したい場合、"関数 "の実行ではなく、コンストラクタの実行、つまりメソッドがクラスと呼ばれ、戻り結果がクラスのインスタンスと呼ばれるように実行すればよいのです;

    function Func(name, age) { //コード実行、インスタンスオブジェクトを生成 //thisがインスタンスオブジェクトを指すようにする //=>this.xxx=xxx は全てインスタンスオブジェクトのインスタンスオブジェクトのプライベートプロパティとメソッドを設定します。10は、メソッドの属性名として thisを探すのと同じです /2.newは、作成されたクラスFuncのインスタンスを探すのと同じです。', 10);//{name:'ZhangSan',age:10} です。

    //Li Siはプロパティ名としてメソッド thisを探すのと同じです。10もプロパティ名としてメソッド thisを探すのと同じです。f2 = new Func('Li Si', 30);//{name:'Li Si',age:30} console.log(f1);//f1関数そのもの console.log(f2);//f2関数そのもの //FALSE 新しいインスタンスが生成されるたびに、それぞれのインスタンスと他のインスタンスは別のオブジェクトになります。互いに衝突しません console.log(f1 === f2);

コンストラクタ演習

従来の規範:クラス名の最初の文字は一般的に大文字です。

  • 1.コンストラクタの実行は、通常の関数の特性上、プライベートコンテキストにいくつかのプライベート変数があるかもしれませんが、これらのプライベート変数とインスタンスは、必ずしも thisのプライベートコンテキストに関連していないインスタンスですので、唯一の書き込み this.XXX=XXXはインスタンスにプライベート属性を設定する唯一の操作です;

  • 2. インスタンスのプライベートプロパティとコンテキストのプライベート変数は同じものではありません。

  • 3.現在のクラスの各インスタンスは個別のオブジェクトであり、インスタンスは互いに独立しています。

  • 4.コンストラクタの本体では、this.XXX=XXXに基づいてインスタンスに設定されるプロパティとメソッドはプライベートであり、他のインスタンスのものと競合しません。

通常の関数とコンストラクタの違い

  • 1、括弧のない普通の関数は関数そのもの、括弧を加えたものは関数の実装

  • 2、コンストラクタの場合は、括弧なしで、つまり、参照を渡すことはありませんが、リターンが付属しています。

    /*

    • 凡関数
    • .hasOwnProperty(
    • Fn()関数の実行
    • コンストラクタ
    • 1.オブジェクトのプロパティ

    • new Fn; コンストラクタの実行 => 引数なしのnew */

    function Fn() { this.x = 100; this.y = 200; }.

    let f1 = new Fn(); console.log(f1);

    let f2 = new Fn; console.log(f2);

データ型の検出

instanceof: 現在のインスタンスがこのクラスに属しているかどうかを検出します。

  • 1. クラスをインスタンス化した値

  • 2. そのインスタンスであれば TRUE を返し、その逆であれば FALSE を返します。

  • 4.アプリケーションシナリオ:オブジェクト内の特殊なデータ形式、例えば配列や通常の

現在のプロパティが以下のインスタンスであるかどうかを検出します。

1. hasOwnProperty: 現在のプロパティがインスタンスのプライベートかどうかを検出します。

  • 1. object.hasOwnProperty(プロパティ)
  • 2. プライベート・プロパティである場合は TRUE を返し、そうでない場合は FALSE を返します。
  1. in: この演算子は、現在のプロパティがオブジェクトのプロパティであるかどうかも検出します。
  • 1.オブジェクトの属性

  • 2.オブジェクトの属性がTRUEである限り

    // 現在のプロパティの1つがインスタンスであるかどうかを検出 console.log(f1.hasOwnProperty('say'));//=>true // このプロパティすら持っていないから console.log(f1.hasOwnProperty('name')); //=>false //=> toStringはf1のオブジェクトのプロパティでなければなりません。toStringはf1のオブジェクトのプロパティでなければなりません。そうでなければ、f1はこのメソッドを呼び出すことができません。hasOwnProperty('toString')); //=>false

    console.log('say' in f1); //=>true console.log('toString' in f1); //=>true console.log('name' in f1); //=>false

プロパティが現在のオブジェクトのパブリックプロパティであるかどうかの検出

要件:プロパティが現在のオブジェクトのパブリックプロパティであるかどうかを検出すること

  • ATTRがOBJのパブリック・プロパティであるかどうかの検出

Read next

MySQL MySQLアーキテクチャの知識

データベースは、これらのファイルにSELECT、INSERT、UPDATEおよびDELETEなどのデータベース操作を実行するために、別の後に1つのファイルで構成されているので、単にファイルの内容を変更するには、データベースの操作を完了するには、データベースインスタンスを介してデータベースの操作を完了する必要が変更することはできません。 接続層:いくつかのクライアントと接続サービス。主にいくつかの同様の完了...

Oct 21, 2020 · 2 min read