Skip to content

Instantly share code, notes, and snippets.

@lancejpollard
Created October 23, 2011 20:08
Show Gist options
  • Save lancejpollard/1307821 to your computer and use it in GitHub Desktop.
Save lancejpollard/1307821 to your computer and use it in GitHub Desktop.
cross browser getter setters in javascript?
# http://annevankesteren.nl/2009/01/gettters-setters
# http://antimatter15.com/wp/2010/02/experiment-cross-browser-javascript-getters-and-setters/
# http://download.dojotoolkit.org/release-1.3.0/dojo-release-1.3.0/dojox/lang/observable.js
# http://webreflection.blogspot.com/2011/02/btw-getters-setters-for-ie-6-7-and-8.html
# https://gist.github.com/189354
# http://webreflection.blogspot.com/2011/03/rewind-getters-setters-for-all-ie-with.html
# http://code.google.com/p/vbclass/
# http://code.google.com/p/vbclass/source/browse/#svn%2Ftrunk%2Fmin
# https://github.com/eligrey/Xccessors/blob/master/xccessors-legacy.js
# http://jsperf.com/getter-setter
unless Object.defineProperty
if ({}).__defineGetter__ and false
Object.defineProperty = (obj, prop, desc) ->
for i of desc
if i is "get"
obj.__defineGetter__ prop, desc.get
else obj.__defineSetter__ prop, desc.set if i is "set"
window.getset.type = 1
else
Object.defineProperty = (obj, prop, desc) ->
for i of desc
if i is "get"
obj["__get_" + prop] = desc.get
else obj["__set_" + prop] = desc.set if i is "set"
window.getset.type = 2
test = {}
Object.defineProperty test, "description",
get: ->
@desc + " and stuff added because of the awesome getter"
set: (val) ->
@desc = val + " stuff added for setter "
test.description = "Absolutely delicious"
alert test.description
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment