es6 オブジェクトに追加された新しい属性は何ですか?
es6 オブジェクトに追加された新しい属性は「name」です。 name 属性は、オブジェクトのメソッド (関数) の名前を取得できます (例: "getName() {console.log(this.name);}"。この関数は、name を直接呼び出すと関数名を返します。リテラルオブジェクトのメソッドも function なので、 name 属性もあります。オブジェクトのメソッドがシンボル値の場合、name 属性は括弧内のシンボルの説明内容を返します。
このチュートリアルの動作環境: Windows 7 システム、ECMAScript バージョン 6、Dell G3 コンピューター。
オブジェクトは JavaScript において非常に重要なデータ構造です。ES6 ではオブジェクトが大幅に拡張され、より使いやすくなっています。 es6 オブジェクトに追加された新しい属性は「name」です。
オブジェクト メソッドの name 属性
オブジェクトのメソッドの名前を取得する方法について考えたことはありますか? ES6では関数にname属性が追加されており、関数がnameを直接呼び出すと関数名が返されます。リテラル オブジェクトのメソッドも関数であるため、name 属性も持ちます。次の例:
var person = { name: "Jack", getName() { console.log(this.name); }, }; person.getName.name // "getName"
上記のコードでは、getName()
メソッドの name
属性は関数名 (つまりメソッド名)
- Function コンストラクターによって作成された関数、name 属性は「匿名」を返します; ## によって作成された関数 #bind メソッドでは、name 属性は「bound」と元の関数の名前を返します。
(new Function()).name // "anonymous" var doSomething = function() { // todo }; doSomething.bind().name // "bound doSomething"
ログイン後にコピーオブジェクト メソッドがシンボル値の場合、
属性は括弧内のシンボルの説明内容を返します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>const key1 = Symbol(&#39;description content&#39;);
const key2 = Symbol();
let obj = {
[key1]() {},
[key2]() {},
};
obj[key1].name // "[description content]"
obj[key2].name // ""</pre><div class="contentsignin">ログイン後にコピー</div></div>
拡張知識: es6 オブジェクトの属性の改善
ES6 では、変数や関数をオブジェクトのプロパティやメソッドとして直接記述することができます
1.1 プロパティ値の省略形
ES5 では、オブジェクトを定義するときのプロパティの値は次のとおりであることがわかっています。 ES6では、属性名と定義した変数名が同じであれば、オブジェクト内の項目として変数名をオブジェクト内に直接記述することができます。以下のように: 上記のコードの
var name = 'imooc'; // ES5 var obj1 = { name: name, } // ES6 var obj2 = { name, }
obj1 と obj2 は同じ意味を持ちます。変数名は中括弧内に直接記述することができます。このとき、属性名が変数名、属性値が変数の値となります。
関数でオブジェクトを返す例を見てみましょう:
// ES5 function getObj(x, y) { return {x: x, y: y}; } // 等同于 ES6 function getObj(x, y) { return {x, y}; } getObj(1, 2) // {x: 1, y: 2}
上記のコードから、日常の開発において、データを組み立てることが非常に便利で役立つことがわかります。 。
1.2 オブジェクト内のメソッドの省略形
省略可能なプロパティに加えて、オブジェクト内のメソッドも省略でき、より簡潔で明確になります。次の例を見てみましょう:
const name = '张三' // ES5 var person = { name: name, getName: function() { console.log('imooc') } }; // ES6 var person = { name, getName() { console.log(this.name) } }; console.log(person) // {name: "imooc", getName: ƒ}
上記のコードでは、ES5 でオブジェクトのメソッドを定義する場合、function キーワードを使用してメソッドを定義する必要がありますが、ES6 ではコロンと function キーワードが直接省略されます。 ES6 の簡潔なアプローチを使用すると、より表現力が豊かになることがわかります。
この方法は、Node.js でモジュールをエクスポートする場合に便利です。次の例を見てみましょう:
var person = {}; function getName () { return person.name } function setName () { person.name = '李四' } function clear () { person = {}; } // ES5 写法 module.exports = { getName: getName setName: setName, clear: clear }; // ES6写法 module.exports = { getName, setName, clear };
上記のコードでは、人物オブジェクトを定義し、その人物オブジェクトを操作するためのいくつかのメソッドを公開しています。エクスポートするときに、ES6 で次の記述を繰り返す必要がないことがわかります。変数名をより簡潔な方法で変更し、モジュールによって提供されるメソッドをより簡潔に表現します。
2. 簡潔な属性表現JavaScript でオブジェクトのプロパティを定義するには、通常 2 つの方法があります。次のように:
// 方法一 obj.name = 'imooc'; // 方法二 obj['a' + 'ge'] = 7;
上記のコードでは、メソッド 1 は識別子を直接使用して代入操作を実行します。これはより一般的に使用される代入操作ですが、属性が式の場合は、メソッド 2 を使用して属性を変更できます。式 式は角括弧内に記述されます。
ただし、ES5 でリテラル オブジェクトを定義する場合、リテラル オブジェクトのプロパティとして式を使用することはできません。プロパティは、最初のメソッド (識別子) を通じてのみ定義できます。
var obj = { name: 'imooc', age: 7 }
ES6 は、より多くのシナリオをカバーするためにオブジェクトのプロパティを拡張しました。プロパティは、次のように変数の形式で定義できます:
var key = 'name'; var obj = { [key]: 'imooc', ['a' + 'ge']: 7 }
上記のコードでは、リテラル オブジェクトの属性を次のように定義できます。角括弧内に配置します。角括弧には変数または式を指定できます。これにより、間違いなく属性の機能が拡張され、プログラミングがより柔軟になります。
さらに、属性にはスペースを含む文字列を指定することもでき、値を取得する場合は、括弧内で文字列を直接使用することも、変数を使用することもできます。次のように:
var str = 'first name'; var obj = { ['I love imooc']: 'ES6 Wiki', [str]: 'Jack' } console.log(obj['I love imooc']) // ES6 Wiki console.log(obj[str]) // Jack console.log(obj['first name']) // Jack
式は、オブジェクトのメソッド名を定義するために使用することもできます。
var person = { name: 'Jack', ['get' + 'Name']() { console.log(this.name) } }; console.log(person.getName()) // Jack
注 1: プロパティ名の表現とプロパティの簡潔な表現を同時に使用することはできず、エラーが報告されます。
// 报错 var name = 'Jack'; var age = 18; var person = { [name] }; // Uncaught SyntaxError: Unexpected token '}'
上記のコードには構文エラーがあります
注 2: 属性名は文字列型である必要があります。属性式がオブジェクトの場合、最初に toString() が呼び出されます。使用前の紐です。
var key1 = {name: 'imooc'}; var key2 = {age: 7}; var obj = { [key1]: 'value content 1', [key2]: 'value content 2', } console.log(obj) // {[object Object]: "value content 2"}
上記のコードで定義されている 2 つの変数はオブジェクト型であり、toString() が呼び出されたときに同じ属性を持つ [object Object] になります。したがって、後の属性によって前の属性が上書きされます。
注意 3: 如果属性的表达式是数组时,则和对象不一样。数组在 toString() 后会变成一个字符串,所以对象属性的表达式就是一个字符串。
var keys = ['imooc', '7']; var obj = { [keys]: 'value content', } console.log(key.toString()) // "imooc,7" console.log(obj) // {imooc,7: "value content"} console.log(obj[keys]) // "value content"
上面的代码中可以看出来,数组 keys 在 toString() 得到了 imooc,7 作为 obj 的属性。另外,我们也可以直接使用 keys 获取 obj 对象上的值。
【推荐学习:javascript视频教程】
以上がes6 オブジェクトに追加された新しい属性は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

使用法: JavaScript では、insertBefore() メソッドを使用して、DOM ツリーに新しいノードを挿入します。このメソッドには、挿入される新しいノードと参照ノード (つまり、新しいノードが挿入されるノード) の 2 つのパラメータが必要です。

JavaScript で HTTP ステータス コードを取得する方法の紹介: フロントエンド開発では、バックエンド インターフェイスとの対話を処理する必要があることが多く、HTTP ステータス コードはその非常に重要な部分です。 HTTP ステータス コードを理解して取得すると、インターフェイスから返されたデータをより適切に処理できるようになります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法と、具体的なコード例を紹介します。 1. HTTP ステータス コードとは何ですか? HTTP ステータス コードとは、ブラウザがサーバーへのリクエストを開始したときに、サービスが
