Given javascript code like the following (extracted from a plugin referenced below):
var AutosizeInput = (function () {
function AutosizeInput(input, options) {
var _this = this;
this._input = $(input);
this._options = options;
}
Object.defineProperty(AutosizeInput.prototype, "options", {
get: function () {
return this._options;
},
enumerable: true,
configurable: true
});
}
Full code of the plugin located at: https://github.com/MartinF/jQuery.Autosize.Input/blob/master/jquery.autosize.input.js
From what I read the call to Object.defineProperty will not work on IE8 as this is not a DOM object.
Is that accurate?..and if it is...which would be the best way to rewrite this getters (and setters) to be IE8 compliant?
IE8 does not support getter/setter functions on properties of non DOM objects.
The "solution" here is to not rely on property getters, and use a full getter function instead.
AutosizeInput.prototype.getOptions = function() {
return this._options;
};
var input = new AutoresizeInput();
input.getOptions();
Or, instead of keeping this._options
as an "internal" variable, just drop the underscore allow access directly. This way you need no magic at all.
var AutoresizeInput = function() {
this.options = {};
}
var input = new AutoresizeInput();
input.options();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With