Is this use of JavaScript prototype functions for attaching event listeners going to meet design goals? Please provide a sanity check on my below JavaScript pattern to be used for a custom edit control. The goals are:


Centralized code 
Avoid name collisions 
Minimize memory use (putting functions on the prototype chain to accomplish?) 
Ease of use for other developers


My specific question is, are there any "gotchas" in below pattern that I may have overlooked or anything that I'm doing that is just plain wrong?

var CustomEditor = function (id) {
    'use strict';
    var evnt = null,
        funct = null;
    this.id = id;
    this.init();
};

CustomEditor.prototype.onCustomBlur = function () {
    'use strict';
    // alert("blur event handler");
    this.style.backgroundColor = "#fff";
    this.style.color = "#f00";
};

CustomEditor.prototype.onCustomKeyPress = function () {
    'use strict';
    // alert("keypress event handler");
    this.style.backgroundColor = "#000";
    this.style.color = "#ff0";
};

CustomEditor.prototype.onCustomFocus = function () {
    'use strict';
    // alert("focus event handler");
    this.style.backgroundColor = "#000";
    this.style.color = "#0ff";
};

CustomEditor.prototype.addEvent = function () {
    'use strict';
    var element = document.getElementById(this.id);
    // old IE work around
    if (element.attachEvent) {
        return element.attachEvent('on' + this.evnt, this.funct);
    }
    return element.addEventListener(this.evnt, this.funct, false);
};

CustomEditor.prototype.init = function () {
    'use strict';
    // initialize a custom editor
    this.evnt = 'blur';
    this.funct = this.onCustomBlur;
    this.addEvent();

    this.evnt = 'keypress';
    this.funct = this.onCustomKeyPress;
    this.addEvent();

    this.evnt = 'focus';
    this.funct = this.onCustomFocus;
    this.addEvent();
};


This code will be JavaScript code in the HTML page to allocate and initialize:

new CustomEditor('myInput1');
new CustomEditor('myInput2');
new CustomEditor('myInput3');


See this JSFiddle to try this pattern or fork as needed to correct.
Looks fine to me; but I think the this.evnt &amp; this.funct abstractions are unnecessary. Would always promote readable properties over shorthand (funct -> function etc), and I think that you should change the addEvent method to accept parameters. You can then clean up the code like so:

var CustomEditor = function(id) {
    'use strict';
    this.id = id;
    this.init();
};

CustomEditor.prototype.addEvent = function(event, callback) {
    'use strict';
    var element = document.getElementById(this.id);
    // old IE work around
    if (element.attachEvent) {
        return element.attachEvent('on' + event, callback);
    }
    return element.addEventListener(event, callback, false);
};

CustomEditor.prototype.init = function() {
    'use strict';
    this.addEvent('blur', this.onCustomBlur);
    this.addEvent('keypress', this.onCustomKeyPress);
    this.addEvent('focus', this.onCustomFocus);
};


See the fiddle.