Estoy buscando poder extender el prototipo de función en javascript (es decir, agregar una función a todas las funciones). El propósito es convertirlo en un formato para el intercambio entre otro idioma (es decir, ruby, que solo puede comunicarse a través de cadenas [en esta configuración particular]). Ya tengo un sistema para que pueda pasar alrededor de otros tipos mediante la definición de un método to_js
en objetos de rubí y un método to_ruby
en javascript objetos, al igual queExtendiendo el prototipo de función
Number.prototype.to_ruby = function() { return this.toString(); }
Esto está trabajando para todo lo demás que yo quiero que, pero no para funciones. Yo puedo conseguir que funcione en cromo de la siguiente manera:
_empty = function() {};
_empty.__proto__.to_ruby = function() {
return 'JSFunction.new(' + this.toString().to_ruby() + ')';
};
Pero esto no funciona en IE (que es un requisito del sistema).
Sé que tengo un objeto en alguna parte manteniendo un registro de funciones por una ID o similar, pero no puedo garantizar que se utilizarán con la misma instancia que las creó.
Todo lo demás no tan sólo pudiera escribir una función de reparto especial caso con ella (es decir, isFunction(instance) ? fn_to_ruby(instance) : instance.to_ruby()
, pero yo prefiero mantener este modelo, si es posible.
¡Hah! Yo solo estoy buscando lo mismo. SketchUp Ruby <-> JavaScript bridge. : D – thomthom