この記事はOpal Advent Calendar 2016の24日目の投稿として書いています。 今日はクリスマスイブですね。昨日、予告したとおり今日はJSの実装について書きます。 例によって使いかたからです。 require 'js' %x{ function Foo() { this.bar = function() { return 'bar'; }; this.baz = 'baz'; }; } foo = JS.new(`Foo`) puts foo.JS.bar puts foo.JS[:baz] 昨日のサンプルと似ていますね。どちらもJavaScriptのコードを呼びだすためのAPIということがわかります。 NativeはRubyのオブジェクトでラップしてRubyのオブジェクトとして扱えるようにしたものですが、JSはJavaScriptのオブジェクトを直接操作するためにつくら