javascriptオブジェクトがある場合、通常は次のようにオブジェクトとそのメソッドを操作します。
var obj = someObject.getInstance();
var result = obj.someMethod();
ここで、someMethodは次のように定義されます。
someObject.prototype.someOtherMethod = function() { //do stuff };
someObject.prototype.someMethod = function(foo) { this.someOtherMethod(); };
ただし、ExecJSを介してRubyでsomeMethodを呼び出したい場合、エラーが発生します。
context = ExecJS.compile(# the javascript file)
context.call('someObject.getInstance().someMethod')
# Gives a TypeError where Object has no method 'someOtherMethod'
一方、javascriptモジュールで定義されている関数は正常に機能しています。
someFunction = function() { // do stuff };
# in Ruby
context.call('someFunction') # does stuff
ExecJSはJavascriptオブジェクトとそのメソッドを処理できますか、それともそれを使用して関数を呼び出すことしかできませんか?
特定のアプリケーションに関しては、https://github.com/joenoon/libphonenumber-execjsを調べていますが、上記の理由でLibphonenumberの解析機能が機能しません。