JavaScript での演算子のオーバーロード
JavaScript は、ユーザー定義オブジェクトの演算子のオーバーロードをネイティブにサポートしていません。これは、カスタム操作を実行するために 、 =、 == などの演算子を再定義することはできないことを意味します。 JavaScript では、同様の機能を実現できる回避策があります:
メソッドのオーバーライド:
toString メソッドと valueOf メソッドをオーバーライドして、オブジェクトが文字列と数値に変換される方法を制御します。これにより、または ==.Vector2.prototype.valueOf = function() { return [this.x x2, this.y y2]; };
これにより、Vector2 オブジェクトをそれぞれの座標に変換して演算子を使用できるようになります。Vector2.prototype.valueOf = function() {
return [this.x x2, this.y y2];
};
回避策の制限
var x = new Vector2(10, 10);
var y = new Vector2(10, 10);
x = y; // Equivalent to x.x = y.x; and x.y = y.y;
これらは、真の演算子のオーバーロードの構文と動作を完全に複製するわけではありません。
追加のメソッド呼び出しまたはプロパティ オーバーライドが必要となり、コードが複雑になる可能性があります。免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3