así que creé una función como esta,crear función en Javascript con el prototipo de encargo
var functionName = function(arg1) { //code logic here; }
Al mismo tiempo, necesito esta función para trabajar como un objeto. Realmente no guardará nada, pero se accederá a los datos desde otro objeto.
var myObj = new Object();
myObj.x = 3;
myObj.y = 4;
Así que cuando me vaya, functionName.x
debe devolver myObj.x
. El objeto myObj
se está manteniendo en otro lugar y no tengo ningún control sobre él.
Es así como actualmente se implementé,
functionName.__proto__ = myObj;
funciona bien. Pero __proto__
ya está en desuso y me gustaría ver si hay alguna otra forma segura de hacerlo. Pensé en anular Function.prototype
pero no funciona.
¿Por qué no solo almacena en ** functionName ** solo una referencia a ** myObj **? – Kryz
@Kryz No estoy seguro Entiendo. No puedo hacer functionName = myObj cuz que anulará la definición de la función. Actualmente, se está accediendo a functionName como functionName() y functionName.x, así que necesito mantener el comportamiento. –
Una observación al margen: myObj probablemente debería derivarse de Function.prototype, por lo que todavía tiene acceso a functionName.bind, etc. (Por supuesto, esto no tiene nada que ver con el problema original). – Marc