with
with 文はオブジェクトのプロパティをスコープチェーンに追加するレガシー構文です。strict モードでは禁止されており、使用は推奨されません。
概要
with 文はオブジェクトのプロパティをスコープチェーンに追加するレガシー構文です。strict モードでは禁止されており、使用は推奨されません。
対応ブラウザ
| 機能 | デスクトップ | モバイル | ||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | Chrome Android | Safari iOS | |
with 非推奨 | 1 | 12 | 1 | 1 | 18 | 1 |
| ビルトインオブジェクト | ||||||
| [Symbol.unscopables] は Array.prototype のデータプロパティで、すべての Array インスタンスで共有されます。 ES2015 以前の ECMAScript 標準には含まれておらず、 with 文のバインドの目的では無視されるプロパティ名を含んでいます。 | 38 | 12 | 48 | 10 | 38 | 10 |
| Symbol.unscopables は静的データプロパティで、ウェルノウンシンボルの Symbol.unscopables を表します。Statements/with 文はスコープオブジェクト上で、その with 環境内でバインドから除外されるプロパティの集合を持つプロパティを、このシンボルで検索します。 | 38 | 12 | 48 | 9 | 38 | 9 |
基本構文
JAVASCRIPT
// with example
// See MDN Web Docs for details ライブデモ
Access object properties with with
Use the legacy with statement to shorten repeated property access.
JavaScript
出力
「実行」ボタンを押してください
Compare with direct property access
Show the same logic written without the with statement.
JavaScript
出力
「実行」ボタンを押してください
Highlight name ambiguity
See how with can make identifier lookup harder to reason about.
JavaScript
出力
「実行」ボタンを押してください
実務での使いどころ
-
with の活用
with 文(非推奨)。オブジェクトのプロパティをスコープに展開する。strict モードでは使用不可。
注意点
- 一部のブラウザでのみ対応。使用前にブラウザサポートを確認すること。
アクセシビリティ
- JavaScript による動的更新時は、aria-live リージョンで変更をスクリーンリーダーに通知する。
参考リンク
Powered by web-features