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

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to