Opciones de acceso al prototipo de javascript desde init: ¿es posible?

En un prototipo de javascript, ¿es posible que los métodos accedan a las propiedades de otros métodos, por ejemplo: cómo hacer que las opciones estén disponibles para el método abierto?

function Plugin(element, options) {
    Modal = this;
    Modal.options = $.extend({}, defaults, options);
    Modal._defaults = defaults;
    Modal.init(Modal.element, Modal.options);
}


Plugin.prototype = {
    init: function(element, options) {
        console.log(options);
    },
    open: function() {
        //Does this function have access to options?
        //how to modify so that 'open' function has access to options
    }
}

preguntado el 02 de enero de 13 a las 19:01

3 Respuestas

No.

Sin embargo, ya los pusiste this, para que puedas escribir this.options.

Respondido el 02 de enero de 13 a las 19:01

guárdelo como this._options en el primer método.

Respondido el 02 de enero de 13 a las 19:01

En primer lugar, Modal es un global implícito, que sospecho que no fue intencional. Usar var limitarlo al ámbito local.

function Plugin(element, options) {
    var Modal = this;
    Modal.options = $.extend({}, defaults, options);
    Modal._defaults = defaults;
    Modal.init(Modal.element, Modal.options);
}

En segundo lugar, desde options ha sido agregado como una propiedad de la instancia por el constructor, puede acceder a él en el método prototipo:

open: function() {
    console.log(options);
}

Respondido el 02 de enero de 13 a las 19:01

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.