require 'native' %x{ var foo = new Object(); foo.bar = function() { return 'bar'; }; foo.baz = 'baz'; } n = Native(`foo`) puts n.bar puts n.baz こんなプログラムを実行してみましょう。n.barもn.bazもそれぞれ文字列を返します。 Rubyのこれらの呼び出しはすべてメソッド呼び出しになります。 一方、JavaScriptではプロパティに関数だったり、文字列だったりをアサインすることができます。 Nativeは関数であれば関数を実行した結果を返すし、文字列などの値であればその値を返すようになっています。 それでは、これらがどのように実装されているか見てみましょう。 Nativeはstdlib/native.rbに定義されています。 まずはNativ
