with
非推奨;: この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。
メモ: with 文の使用は推奨されません。混乱を招くバグや互換性問題の原因となる可能性があり、最適化ができなくなり、厳格モードでは禁止されているからです。推奨される代替案は、プロパティをアクセスしたいオブジェクトを一時変数に割り当てることです。
with 文は、文に対するスコープチェーンを拡張します。
対応ブラウザ
| 機能 | デスクトップ | モバイル | ||||
|---|---|---|---|---|---|---|
| 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 |
基本構文
// with example
// See MDN Web Docs for details ライブデモ
Access object properties with with
Use the legacy with statement to shorten repeated property access.
Compare with direct property access
Show the same logic written without the with statement.
Highlight name ambiguity
See how with can make identifier lookup harder to reason about.
実務での使いどころ
-
with の活用
非推奨;: この機能は非推奨になりました。
注意点
- 一部のブラウザでのみ対応。使用前にブラウザサポートを確認すること。
アクセシビリティ
- JavaScript による動的更新時は、aria-live リージョンで変更をスクリーンリーダーに通知する。