From 368df01830d5ddf4d71437a21f41fc54634624d4 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Thu, 17 Feb 2022 22:31:22 +0900 Subject: 2022/02/02 時点の英語版に同期 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/operators/new.target/index.md | 48 +++++++++++----------- 1 file changed, 24 insertions(+), 24 deletions(-) (limited to 'files/ja/web') diff --git a/files/ja/web/javascript/reference/operators/new.target/index.md b/files/ja/web/javascript/reference/operators/new.target/index.md index cf1d45959f..ba65c7b49f 100644 --- a/files/ja/web/javascript/reference/operators/new.target/index.md +++ b/files/ja/web/javascript/reference/operators/new.target/index.md @@ -5,37 +5,37 @@ tags: - Classes - ECMAScript 2015 - JavaScript -- Language feature -- Reference +- 言語機能 +- リファレンス translation_of: Web/JavaScript/Reference/Operators/new.target --- -
{{JSSidebar("Operators")}}
+{{JSSidebar("Operators")}} -

new.target は擬似プロパティで、関数やコンストラクターが new 演算子を使用して呼び出されたかどうかを検出することができます。 new 演算子を使用して呼び出されたコンストラクターや関数の中では、 new.target はコンストラクターや関数への参照を返します。通常の関数呼び出しの場合、 new.target は {{jsxref("undefined")}} になります。

+`new.target` は擬似プロパティで、関数やコンストラクターが [new](/ja/docs/Web/JavaScript/Reference/Operators/new) 演算子を使用して呼び出されたかどうかを検出することができます。 [new](/ja/docs/Web/JavaScript/Reference/Operators/new) 演算子を使用して呼び出されたコンストラクターや関数の中では、 `new.target` はコンストラクターや関数への参照を返します。通常の関数呼び出しの場合、 `new.target` は {{jsxref("undefined")}} になります。 -
{{EmbedInteractiveExample("pages/js/expressions-newtarget.html")}}
+{{EmbedInteractiveExample("pages/js/expressions-newtarget.html")}} -

構文

+## 構文
new.target
-

解説

+## 解説 -

new.target の構文は、new キーワードとドット、 target 識別子で構成されています。通常、ドットの左側はプロパティアクセスが行われるオブジェクトですが、ここでの new はオブジェクトではありません。

+`new.target` の構文は、`new` キーワードとドット、 `target` 識別子で構成されています。通常、ドットの左側はプロパティアクセスが行われるオブジェクトですが、ここでの `new` はオブジェクトではありません。 -

new.target は、すべての関数で使用できる擬似プロパティです。

+`new.target` は、すべての関数で使用できる擬似プロパティです。 -

クラスのコンストラクターでは、構築されたクラスを参照します。

+クラスのコンストラクターでは、構築されたクラスを参照します。 -

通常の関数では、new 演算子を介して呼び出されたと仮定して、関数自体を参照します。それ以外の場合、new.target は {{jsxref("undefined")}} になります。

+通常の関数では、[new](/ja/docs/Web/JavaScript/Reference/Operators/new) 演算子を介して呼び出されたと仮定して、関数自体を参照します。それ以外の場合、`new.target` は {{jsxref("undefined")}} になります。 -

アロー関数では、new.target は周囲のスコープから継承されます。

+[アロー関数](/ja/docs/Web/JavaScript/Reference/Functions/Arrow_functions)では、`new.target` は周囲のスコープから継承されます。 -

+## 例

関数呼び出しにおける new.target の使用

-

通常の関数呼び出しでは (コンストラクター関数の呼び出しとは対照的に)、 new.target は {{jsxref("undefined")}} になります。これにより、関数が new でコンストラクターとして呼び出されたかを検出できます。

+通常の関数呼び出しでは (コンストラクター関数の呼び出しとは対照的に)、 `new.target` は {{jsxref("undefined")}} になります。これにより、関数が [new](/ja/docs/Web/JavaScript/Reference/Operators/new) でコンストラクターとして呼び出されたかを検出できます。
function Foo() {
   if (!new.target) { throw 'Foo() must be called with new' }
@@ -48,7 +48,7 @@ Foo()      // throws "Foo() must be called with new"
 
 

コンストラクターにおける new.target

-

クラスのコンストラクターでは、new.targetnew で直接実行されたコンストラクターを参照します。これは、コンストラクターが親クラスにあり、子コンストラクターから委任された場合も同様です。

+クラスのコンストラクターでは、`new.target` は `new` で直接実行されたコンストラクターを参照します。これは、コンストラクターが親クラスにあり、子コンストラクターから委任された場合も同様です。
class A {
   constructor() {
@@ -67,9 +67,9 @@ class D extends C { constructor() { super()  } }
 let c = new C()  // logs class C{constructor(){console.log(new.target);}}
 let d = new D()  // logs class D extends C{constructor(){super();}}
-

上記の C および D クラスの例から、 new.target は初期化されたクラスのクラス定義を指しているように見えます。たとえば、dnew D() で初期化した場合は、 D のクラス定義が出力され、同様に c の場合は C のクラスが出力されます。

+

上記の `C` および `D` クラスの例から、 `new.target` は初期化されたクラスのクラス定義を指しているように見えます。たとえば、`d` を `new D()` で初期化した場合は、 `D` のクラス定義が出力され、同様に `c` の場合は `C` のクラスが出力されます。

-

仕様書

+## 仕様書 @@ -82,15 +82,15 @@ let d = new D() // logs class D extends C{constructor(){super();}}
-

ブラウザーの互換性

+## ブラウザーの互換性 -

{{Compat("javascript.operators.new_target")}}

+{{Compat("javascript.operators.new_target")}} -

関連情報

+## 関連情報 -- cgit v1.2.3-54-g00ecf