diff options
author | Masahiro FUJIMOTO <mfujimot@gmail.com> | 2022-02-17 22:31:22 +0900 |
---|---|---|
committer | Masahiro FUJIMOTO <mfujimot@gmail.com> | 2022-02-26 16:04:26 +0900 |
commit | 368df01830d5ddf4d71437a21f41fc54634624d4 (patch) | |
tree | dabe9ba6ccf6fb00c99b166945d8242f90913dfa /files/ja/web | |
parent | ca804d69217a116d4886ce08ee0281e6ab6dbf15 (diff) | |
download | translated-content-368df01830d5ddf4d71437a21f41fc54634624d4.tar.gz translated-content-368df01830d5ddf4d71437a21f41fc54634624d4.tar.bz2 translated-content-368df01830d5ddf4d71437a21f41fc54634624d4.zip |
2022/02/02 時点の英語版に同期
Diffstat (limited to 'files/ja/web')
-rw-r--r-- | files/ja/web/javascript/reference/operators/new.target/index.md | 48 |
1 files changed, 24 insertions, 24 deletions
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 --- -<div>{{JSSidebar("Operators")}}</div> +{{JSSidebar("Operators")}} -<p><strong><code>new.target</code></strong> は擬似プロパティで、関数やコンストラクターが <a href="/ja/docs/Web/JavaScript/Reference/Operators/new">new</a> 演算子を使用して呼び出されたかどうかを検出することができます。 <a href="/ja/docs/Web/JavaScript/Reference/Operators/new">new</a> 演算子を使用して呼び出されたコンストラクターや関数の中では、 <code>new.target</code> はコンストラクターや関数への参照を返します。通常の関数呼び出しの場合、 <code>new.target</code> は {{jsxref("undefined")}} になります。</p> +<strong>`new.target`</strong> は擬似プロパティで、関数やコンストラクターが [new](/ja/docs/Web/JavaScript/Reference/Operators/new) 演算子を使用して呼び出されたかどうかを検出することができます。 [new](/ja/docs/Web/JavaScript/Reference/Operators/new) 演算子を使用して呼び出されたコンストラクターや関数の中では、 `new.target` はコンストラクターや関数への参照を返します。通常の関数呼び出しの場合、 `new.target` は {{jsxref("undefined")}} になります。 -<div>{{EmbedInteractiveExample("pages/js/expressions-newtarget.html")}}</div> +{{EmbedInteractiveExample("pages/js/expressions-newtarget.html")}} -<h2 id="Syntax">構文</h2> +## 構文 <pre class="brush: js">new.target</pre> -<h2 id="Description">解説</h2> +## 解説 -<p><code>new.target</code> の構文は、<code>new</code> キーワードとドット、 <code>target</code> 識別子で構成されています。通常、ドットの左側はプロパティアクセスが行われるオブジェクトですが、ここでの <code>new</code> はオブジェクトではありません。</p> +`new.target` の構文は、`new` キーワードとドット、 `target` 識別子で構成されています。通常、ドットの左側はプロパティアクセスが行われるオブジェクトですが、ここでの `new` はオブジェクトではありません。 -<p><code>new.target</code> は、すべての関数で使用できる擬似プロパティです。</p> +`new.target` は、すべての関数で使用できる擬似プロパティです。 -<p>クラスのコンストラクターでは、構築されたクラスを参照します。</p> +クラスのコンストラクターでは、構築されたクラスを参照します。 -<p>通常の関数では、<a href="/ja/docs/Web/JavaScript/Reference/Operators/new">new</a> 演算子を介して呼び出されたと仮定して、関数自体を参照します。それ以外の場合、<code>new.target</code> は {{jsxref("undefined")}} になります。</p> +通常の関数では、[new](/ja/docs/Web/JavaScript/Reference/Operators/new) 演算子を介して呼び出されたと仮定して、関数自体を参照します。それ以外の場合、`new.target` は {{jsxref("undefined")}} になります。 -<p><a href="/ja/docs/Web/JavaScript/Reference/Functions/Arrow_functions">アロー関数</a>では、<code>new.target</code> は周囲のスコープから継承されます。</p> +[アロー関数](/ja/docs/Web/JavaScript/Reference/Functions/Arrow_functions)では、`new.target` は周囲のスコープから継承されます。 -<h2 id="Examples">例</h2> +## 例 <h3 id="new.target_in_function_calls">関数呼び出しにおける new.target の使用</h3> -<p>通常の関数呼び出しでは (コンストラクター関数の呼び出しとは対照的に)、 <code>new.target</code> は {{jsxref("undefined")}} になります。これにより、関数が <a href="/ja/docs/Web/JavaScript/Reference/Operators/new">new</a> でコンストラクターとして呼び出されたかを検出できます。</p> +通常の関数呼び出しでは (コンストラクター関数の呼び出しとは対照的に)、 `new.target` は {{jsxref("undefined")}} になります。これにより、関数が [new](/ja/docs/Web/JavaScript/Reference/Operators/new) でコンストラクターとして呼び出されたかを検出できます。 <pre class="brush: js">function Foo() { if (!new.target) { throw 'Foo() must be called with new' } @@ -48,7 +48,7 @@ Foo() // throws "Foo() must be called with new" <h3 id="new.target_in_constructors">コンストラクターにおける new.target</h3> -<p>クラスのコンストラクターでは、<code>new.target</code> は <code>new</code> で直接実行されたコンストラクターを参照します。これは、コンストラクターが親クラスにあり、子コンストラクターから委任された場合も同様です。</p> +クラスのコンストラクターでは、`new.target` は `new` で直接実行されたコンストラクターを参照します。これは、コンストラクターが親クラスにあり、子コンストラクターから委任された場合も同様です。 <pre class="brush: js">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();}}</pre> -<p class="summary">上記の <code>C</code> および <code>D</code> クラスの例から、 <code>new.target</code> は初期化されたクラスのクラス定義を指しているように見えます。たとえば、<code>d</code> を <code>new D()</code> で初期化した場合は、 <code>D</code> のクラス定義が出力され、同様に <code>c</code> の場合は <code>C</code> のクラスが出力されます。</p> +<p class="summary">上記の `C` および `D` クラスの例から、 `new.target` は初期化されたクラスのクラス定義を指しているように見えます。たとえば、`d` を `new D()` で初期化した場合は、 `D` のクラス定義が出力され、同様に `c` の場合は `C` のクラスが出力されます。</p> -<h2 id="Specifications">仕様書</h2> +## 仕様書 <table class="standard-table"> <tbody> @@ -82,15 +82,15 @@ let d = new D() // logs class D extends C{constructor(){super();}}</pre> </tbody> </table> -<h2 id="Browser_compatibility">ブラウザーの互換性</h2> +## ブラウザーの互換性 -<p>{{Compat("javascript.operators.new_target")}}</p> +{{Compat("javascript.operators.new_target")}} -<h2 id="See_also">関連情報</h2> +## 関連情報 <ul> - <li><a href="/ja/docs/Web/JavaScript/Reference/Functions">関数</a></li> - <li><a href="/ja/docs/Web/JavaScript/Reference/Classes">クラス</a></li> - <li><code><a href="/ja/docs/Web/JavaScript/Reference/Operators/new">new</a></code></li> - <li><code><a href="/ja/docs/Web/JavaScript/Reference/Operators/this">this</a></code></li> +- [関数](/ja/docs/Web/JavaScript/Reference/Functions) +- [クラス](/ja/docs/Web/JavaScript/Reference/Classes) +- `[new](/ja/docs/Web/JavaScript/Reference/Operators/new)` +- `[this](/ja/docs/Web/JavaScript/Reference/Operators/this)` </ul> |