目次
1. クラスの概要
2. 静的メソッドと静的プロパティ
class は extends キーワードを使用して
getter と setter は、クラスの属性に値を読み取って転送するために使用されます。
1. クラス内でメソッドを定義する場合、 JS のコンストラクターは関数ごとに 2 つで区切って定義されているため、関数キーワードをメソッドに追加できます。

クラスはes5ですかes6ですか?

Nov 16, 2022 pm 07:28 PM
es6 class

クラスはes6の新機能です。 ES6 では、クラス (クラス) がオブジェクトのテンプレートとして導入され、class キーワードを通じてクラスを定義できるようになりました。新しいクラス記述方法により、オブジェクト プロトタイプの記述がより明確になり、オブジェクト指向プログラミングの構文に似たものになります。理解できる。クラスは ECMAScript の新しい基本的な糖衣構文構造です。ES6 クラスは正式なオブジェクト指向プログラミングをサポートしているように見えますが、実際には依然としてプロトタイプとその背後にあるコンストラクターの概念を使用しており、オブジェクト プロトタイプの記述方法が明確になっています。

クラスはes5ですかes6ですか?

#このチュートリアルの動作環境: Windows 7 システム、ECMAScript バージョン 6、Dell G3 コンピューター。

クラスはes6の新機能です。 ES6ではオブジェクトのテンプレートとしてclass(クラス)が導入され、classキーワードを通じてクラスを定義できるようになりました。

ES6 は従来の言語に近い記述方法を提供しており、新たに導入された class キーワードはクラスを形式的に定義する機能を備えています。クラスは ECMAScript の新しい基本的な糖衣構文構造です。ECMAScript 6 クラスは正式なオブジェクト指向プログラミングをサポートしているように見えますが、実際には、依然としてプロトタイプとその背後にあるコンストラクターの概念を使用しており、オブジェクト プロトタイプの記述方法がより明確になり、より多くのことを実現できます。オブジェクト指向プログラミングの構文のようなものです。

1. クラスの概要

従来の JS はオブジェクト指向であるため、従来の JS にはオブジェクトの概念のみがあり、クラスの概念はありません。プロトタイプ、プロトタイプに基づく言語 オブジェクトの特徴は、すべての属性が新しいオブジェクトと共有されることです。

ES6 では、クラスの概念が導入されています。クラスは、class キーワードを通じて定義できます。これは、私たちが通常理解しているものにより近いオブジェクト指向言語です。

class Person{   //定义一个名为Person的类
    // 构造函数,用来接受参数
    constructor(x,y){
        this.x = x;    //this代表的是实例对象
        this.y = y;
    }
    todoSome(){  //这是个类的方法,不需要加function,有多个方法也不用逗号隔开
        alert(this.x + "的年龄是" +this.y+"岁");
    }
}
export default  Person;
ログイン後にコピー

2. 静的メソッドと静的プロパティ

静的メソッドと静的プロパティは、static キーワード

#を使用するプロパティとメソッドです。

##2.1 静的メソッド

static classMethod(){
		console.log('123456')
	}
ログイン後にコピー

    静的メソッドはサブクラスに継承されず、サブクラスはこの中で
  • 静的メソッドを呼び出すことはできませんクラスのインスタンスではなく、クラスを指します。したがって、
  • 静的メソッドは、インスタンスを通じてではなく、クラス名を通じてのみ 呼び出すことができます。
  • let p = new Point();
    p.classMethod();  // 报错
    ログイン後にコピー

2.2 静的プロパティ

static prop = 1 ;  // 静态属性
ログイン後にコピー

    静的プロパティはサブクラスに継承できず、サブクラスから呼び出すことはできません
  • #静的プロパティはクラスのインスタンスではなく、クラス名を通じてのみ呼び出すことができます
  • #3. クラス継承 extends

class は extends キーワードを使用して

    ES6 継承を継承できますが、サブクラス コンストラクターでは super() を使用する必要があります。 ES6 の継承では、最初に親クラスのインスタンス オブジェクトの属性とメソッドが this に追加され、次にサブクラスのコンストラクターを呼び出してこれを変更するためです。
  • サブクラスがコンストラクター メソッドを定義していない場合、super() はデフォルト
  • サブクラスを追加すると、親クラスのメソッドとプロパティが継承されますが、静的メソッドとプロパティは、サブクラス
  • import classtest from "./classtest";  //先引入父类
    class Man extends classtest{
        constructor(x,y){   //构造函数尽量与父类参数保持一致
            super();   //利用super()关键字,这个必须放在子类构造函数中的第一位置
            this.x = x;
            this.y = y;
        }
    }
    export default  Man;
    ログイン後にコピー
  • のクラス名を通じて呼び出す必要があります。 4. クラス 値関数 getter と値格納関数 setter

getter と setter は、クラスの属性に値を読み取って転送するために使用されます。

値関数ゲッターとストレージ関数セッターは、割り当てと値の動作をカスタマイズできます。プロパティにゲッターのみがあり、セッターがない場合、プロパティは読み取り専用プロパティとなり、値を割り当てることも、値を割り当てることもできません。初めて初期化することはできますか?

変数がプライベートとして定義されている場合 (クラスの中括弧の外側で定義されている場合)、セッターなしでゲッターのみを使用できます。

let data=[1,2,3,4];  //放在类外面,属于私有变量,可以只读取
class Person{
    // 构造函数
    constructor(x,y){
        this.x = x;
        this.y = y;
    }
    get x(){
        console.log('获得name');
        return this._name;    //get读取属性
    }
    set x(x){
        console.log("设置name");  
        this._name=x;   //set给属性赋值
    }
    get data(){
        return data;   //只读属性,属性返回的值只能是私有变量
    }
    todoSome(){
        alert(this.x + "的年龄是" +this.y+"岁");
    }
    static dayin(){
        alert("dayin");
    }
}
export default  Person;
ログイン後にコピー

使用方法:

 var test= new this.$myutils.classtest('haha','18');
  test.x="haha3";   //改变了实例化时候的x的值
  test.todoSome();  //输出:haha3的年龄是18岁。这里就已经不是实例化时候的haha了
  console.log(test.data);   //结果:打印[1,2,3,4]
ログイン後にコピー
5. 注意事項:

1. クラス内でメソッドを定義する場合、 JS のコンストラクターは関数ごとに 2 つで区切って定義されているため、関数キーワードをメソッドに追加できます。

2. すべてのメソッドをカンマで区切らないでください。カンマで区切ると、エラーが報告されます。

[推奨学習:

JavaScript 上級チュートリアル

]

以上がクラスはes5ですかes6ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Python でクラスとメソッドを使用する方法 Python でクラスとメソッドを使用する方法 Apr 21, 2023 pm 02:28 PM

クラスとメソッドの概念とインスタンス クラス (Class): 同じプロパティとメソッドを持つオブジェクトのコレクションを記述するために使用されます。コレクション内のすべてのオブジェクトに共通のプロパティとメソッドを定義します。オブジェクトはクラスのインスタンスです。メソッド: クラスで定義された関数。クラス構築メソッド __init__(): クラスには init() という名前の特別なメソッド (構築メソッド) があり、クラスがインスタンス化されるときに自動的に呼び出されます。インスタンス変数: クラスの宣言において、属性を変数で表現したものをインスタンス変数と呼びます。インスタンス変数とは、self で修飾された変数です。インスタンス化: クラスのインスタンス、クラスの特定のオブジェクトを作成します。継承: つまり、派生クラス (派生クラス) は基本クラス (ベースクラス) を継承します。

非同期は es6 または es7 用ですか? 非同期は es6 または es7 用ですか? Jan 29, 2023 pm 05:36 PM

非同期はes7です。 async と await は ES7 に新しく追加されたもので、非同期操作のソリューションです。async/await は co モジュールとジェネレーター関数の糖衣構文と言え、より明確なセマンティクスで JS 非同期コードを解決します。名前が示すように、async は「非同期」を意味します。async は関数が非同期であることを宣言するために使用されます。async と await の間には厳密な規則があります。両方を互いに分離することはできず、await は async 関数内でのみ記述できます。

es6 の 2 つの配列で異なる項目を見つける方法 es6 の 2 つの配列で異なる項目を見つける方法 Nov 01, 2022 pm 06:07 PM

手順: 1. 構文 "newA=new Set(a); newB=new Set(b);" を使用して、2 つの配列をそれぞれセット型に変換します; 2. has() と filter() を使用して差分セットを検索します、構文 " new Set([...newA].filter(x =>!newB.has(x)))" では、差分セット要素がセット コレクションに含まれて返されます。 3. 配列を使用します。 from セットを配列に変換するタイプ、構文は「Array.from(collection)」です。

ミニ プログラムで es6 を es5 に変換する必要があるのはなぜですか? ミニ プログラムで es6 を es5 に変換する必要があるのはなぜですか? Nov 21, 2022 pm 06:15 PM

ブラウザの互換性のため。 ES6 は JS の新しい仕様として、多くの新しい構文と API を追加していますが、最新のブラウザーは ES6 の新機能を高度にサポートしていないため、ES6 コードを ES5 コードに変換する必要があります。 WeChat Web 開発者ツールでは、デフォルトで babel が使用され、開発者の ES6 構文コードを 3 つの端末すべてで適切にサポートされる ES5 コードに変換し、開発者がさまざまな環境によって引き起こされる開発上の問題を解決できるようにします。プロジェクト内でのみ設定して確認するだけです。 「ES6~ES5」オプション。

es5 および es6 で配列重複排除を実装する方法 es5 および es6 で配列重複排除を実装する方法 Jan 16, 2023 pm 05:09 PM

es5 では、for ステートメントと IndexOf() 関数を使用して配列の重複排除を実現できます。構文 "for(i=0;i<配列長;i++){a=newArr.indexOf(arr[i]);if( a== -1){...}}」。 es6 では、スプレッド演算子 Array.from() および Set を使用して重複を削除できます。まず配列を Set オブジェクトに変換して重複を削除してから、スプレッド演算子または Array.from() 関数を使用する必要があります。 Set オブジェクトを配列に変換してグループ化するだけです。

jQueryを使用して要素のクラス名を置換する jQueryを使用して要素のクラス名を置換する Feb 24, 2024 pm 11:03 PM

jQuery は、Web 開発で広く使用されている古典的な JavaScript ライブラリで、イベントの処理、DOM 要素の操作、Web ページ上でのアニメーションの実行などの操作を簡素化します。 jQueryを使っていると要素のクラス名を置き換える場面がよくありますが、この記事ではその実践的な方法と具体的なコード例を紹介します。 1.removeClass() メソッドと addClass() メソッドを使用する jQuery には、削除用の RemoveClass() メソッドが用意されています。

es6 の一時的なデッドゾーンとは何を意味しますか? es6 の一時的なデッドゾーンとは何を意味しますか? Jan 03, 2023 pm 03:56 PM

es6 では、一時的なデッド ゾーンは構文エラーであり、ブロックを閉じたスコープにする let および const コマンドを指します。コード ブロック内では、let/const コマンドを使用して変数が宣言される前に、変数は使用できず、変数が宣言される前は変数の「デッド ゾーン」に属します。これは構文上「一時デッド ゾーン」と呼ばれます。 ES6 では、一時的なデッド ゾーンや let ステートメントや const ステートメントでは変数のプロモーションが発生しないことを規定しています。これは主に実行時エラーを減らし、変数が宣言される前に使用されて予期しない動作が発生するのを防ぐためです。

es6 マップは注文されていますか? es6 マップは注文されていますか? Nov 03, 2022 pm 07:05 PM

地図は注文済みです。 ES6 のマップ タイプは、多くのキーと値のペアを格納する順序付きリストです。キー名と対応する値はすべてのデータ型をサポートします。キー名の等価性は、「Objext.is()」メソッドを呼び出すことによって決定されます。 , したがって、数字の 5 と文字列「5」は 2 つのタイプとして判断され、プログラム内で 2 つの独立したキーとして現れることができます。

See all articles