この記事について JavaScriptにおける「メソッド」は、他のオブジェクト指向言語と比較すると、やや特殊な存在です。 この記事では、ES2015で追加された新機能 Proxy と、かつてFirefoxに存在した独自拡張機能 __noSuchMethod__ の説明を通して、JavaScriptのメソッドの性質について考察します。 導入:Proxyではメソッド呼び出しに割り込めない ES2015(ES6)から導入されたProxyを使用すると、オブジェクトに対する様々な操作に対して、自由に処理を割り込ませることができます。 たとえば、プロパティの値が取得・変更されたときにログをとるには、次のようにします。 function propertyLogger(obj) { return new Proxy(obj, { get: function(target, name, receiver)
![JavaScriptにおけるメソッドとは何か、Proxyと__noSuchMethod__から理解する - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/4d314703593eccbf5f6ed3478713aecf02189a24/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-1150d8b18a7c15795b701a55ae908f94.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTg0MCZoPTM4MCZ0eHQ2ND1TbUYyWVZOamNtbHdkT09CcS1PQml1T0JrZU9DaS1PRG9lT0N2ZU9EZy1PRGllT0JxT09Cci1TOWxlT0JpLU9BZ1ZCeWIzaDU0NEdvWDE5dWIxTjFZMmhOWlhSb2IyUmZYLU9CaS1PQ2llZVFodWluby1PQm1lT0NpdyZ0eHQtY29sb3I9JTIzMzMzJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU0JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1jZW50ZXIlMkNtaWRkbGUmcz1jYjUwM2JkNzRkMzg4YTAxNzE2ZmFjM2JhMzZjYzY1MA%26mark-align%3Dcenter%252Cmiddle%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTg0MCZoPTUwMCZ0eHQ2ND1RSFJyZVd0dGR3JnR4dC1jb2xvcj0lMjMzMzMmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NDUmdHh0LWFsaWduPXJpZ2h0JTJDYm90dG9tJnM9ZmFhZmQ0NDdmNWNmOTllMzhkZDU2N2JkM2E1YmE5ZjM%26blend-align%3Dcenter%252Cmiddle%26blend-mode%3Dnormal%26s%3D9706efc12df80de523a51dc89cceb620)