js defineProperty

var o = {}; // Creates a new object

// Example of an object property added
// with defineProperty with a data property descriptor
Object.defineProperty(o, 'a', {
  value: 37,
  writable: true,
  enumerable: true,
  configurable: true
});
// 'a' property exists in the o object and its value is 37

// Example of an object property added
// with defineProperty with an accessor property descriptor
var bValue = 38;
Object.defineProperty(o, 'b', {
  // Using shorthand method names (ES2015 feature).
  // This is equivalent to:
  // get: function() { return bValue; },
  // set: function(newValue) { bValue = newValue; },
  get() { return bValue; },
  set(newValue) { bValue = newValue; },
  enumerable: true,
  configurable: true
});
o.b; // 38
// 'b' property exists in the o object and its value is 38
// The value of o.b is now always identical to bValue,
// unless o.b is redefined

// You cannot try to mix both:
Object.defineProperty(o, 'conflict', {
  value: 0x9f91102,
  get() { return 0xdeadbeef; }
});
// throws a TypeError: value appears
// only in data descriptors,
// get appears only in accessor descriptors

4
5
Ryan Clare 120 points

                                    // using __proto__
var obj = {};
var descriptor = Object.create(null); // no inherited properties
descriptor.value = 'static';

// not enumerable, not configurable, not writable as defaults
Object.defineProperty(obj, 'key', descriptor);

// being explicit
Object.defineProperty(obj, 'key', {
  enumerable: false,
  configurable: false,
  writable: false,
  value: 'static'
});

// recycling same object
function withValue(value) {
  var d = withValue.d || (
    withValue.d = {
      enumerable: false,
      writable: false,
      configurable: false,
      value: value
    }
  );

  // avoiding duplicate operation for assigning value
  if (d.value !== value) d.value = value;

  return d;
}
// ... and ...
Object.defineProperty(obj, 'key', withValue('static'));

// if freeze is available, prevents adding or
// removing the object prototype properties
// (value, get, set, enumerable, writable, configurable)
(Object.freeze || Object)(Object.prototype);

4 (5 Votes)
0
4.5
2
Warrigan 100 points

                                    There might not seem to be a difference with 'color' but consider:

element.style.backgroundColor = 'blue' // works
element.style['backgroundColor'] = 'blue' // works
element.style['background-color'] = 'blue' // does not work

element.style.setProperty('background-color','blue') // works
element.style.setProperty('backgroundColor','blue') // does not work

4.5 (2 Votes)
0
Are there any code examples left?
Create a Free Account
Unlock the power of data and AI by diving into Python, ChatGPT, SQL, Power BI, and beyond.
Sign up
Develop soft skills on BrainApps
Complete the IQ Test
Relative searches
document setProperty object defineproperty javascript defineProperty in javascri[t Object.defineProperty in node setProperty() javascript defineProperty object js ownproperty in object javascript object.defineproperty js getproperty js javascript defineProperty function ownProperty js setproperty in javascript Object.defineProperty( js defineproperty function addProperty in js Object.defineProperty example getproperty method in javascript javascript getproperty defineproperty javacript getproperty in javascript java script setProperty javascript object defineproperty js object.defineproperty getproperty javascript javascript setproperty defineproperty js javascript defineProperties setProperty javascript setproperty js js object defineproperty js setproperty objects define Property javascript js why object.defineproperty Object.defineProperty( define property in js object.defineproperty in js js write defineproperty javascript defineProperty Object.defineProperty document element Object.defineProperty document Object.definePropert var defineProperty = (functiol() { object define pro[prty javascript custom object defineproperty Object.defineProperty set example Object.defineProperty set get ~ JavaScript Object.defineProperty define property js js new object define property defineproperty in js object definepropriety javascript Object.defineProperty() object defineproperty object.defineproperty javascript example js object set property object.defineproperty function object.setproperty object defineproperty typescript Object.defineProperty in es6 defineprotectedproperty javascript object.defineproperty javascript js define property on Object javascript options in defineProperty js property descriptor object.define property defineproperty javascript configurable js defineproperties javascript object.defineproperty js define prioperty defineproperty javascript object.defineproperty object define property object defineproperty js js defineproperty javascript object define property get set javascript object define property set javascript object define js define property kmloverlay Object.defineProperty(self, 'camera' ts vs js js .val() mediarecorder js liner16 js object define property
Made with love
This website uses cookies to make IQCode work for you. By using this site, you agree to our cookie policy

Welcome Back!

Sign up to unlock all of IQCode features:
  • Test your skills and track progress
  • Engage in comprehensive interactive courses
  • Commit to daily skill-enhancing challenges
  • Solve practical, real-world issues
  • Share your insights and learnings
Create an account
Sign in
Recover lost password
Or log in with

Create a Free Account

Sign up to unlock all of IQCode features:
  • Test your skills and track progress
  • Engage in comprehensive interactive courses
  • Commit to daily skill-enhancing challenges
  • Solve practical, real-world issues
  • Share your insights and learnings
Create an account
Sign up
Or sign up with
By signing up, you agree to the Terms and Conditions and Privacy Policy. You also agree to receive product-related marketing emails from IQCode, which you can unsubscribe from at any time.
Creating a new code example
Code snippet title
Source