memo...@googlemail.com wrote: > David-Sarah Hopwood wrote at 25th December: >> and there is no need for a 'link' convenience function to be standardized >> given that it is a 5-liner in terms of Object.defineProperty > > Just have a look at the following programming code with *sweet* 5-liners: > > var Gui = function() > { > this.init.apply(this, arguments); > } > > Gui.prototype = new function() > { > this.init = function() > { > let title = document.getElementById("title"); > Object.defineProperty(this, "title", > {get: function() { return title.value; }, > set: function(x) { title.value = x; }, > enumerable: true > }); > > let url = document.getElementById("url"); > Object.defineProperty(this, "url", > {get: function() { return url.value; }, > set: function(x) { url.value = x; }, > enumerable: true > }); > > let input = document.getElementById("input"); > Object.defineProperty(this, "url", > {get: function() { return input.value; }, > set: function(x) { input.value = x; }, > enumerable: true > }); > } > }
Here's how I would do it in ES5: function makeGui(doc) { /*const*/ var title = doc.getElementById("title"), url = doc.getElementById("url"), input = doc.getElementById("input"); return Object.freeze({ get title() { return title.value; } set title(newValue) { title.value = newValue; } get url() { return url.value; } set url(newValue) { url.value = newValue; } get input() { return input.value; } set input(newValue) { input.value = newValue; } }); } (I'd probably do more validation, but that would be a less fair comparison.) -- David-Sarah Hopwood ⚥ http://davidsarah.livejournal.com
signature.asc
Description: OpenPGP digital signature
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss