简体中文 | English
A Object.defineProperty
sham based on VBScript for IE. It also provides Object.defineProperties
, Object.getOwnPropertyDescriptor
, Object.getOwnPropertyDescriptors
.
- In IE8, program will use native method
defineProperty
orgetOwnPropertyDescriptor
forElement
object,doucment
andwindow
- In other case,
defineProperty
will return a new VB object - For VB object, it will not create new VB object when modifying the existing descriptor
- VB object can't add or delete properties freely
- VB object doesn't have
[[Prototype]]
or__proto__
- The property name of VB object can't contain special character
]
- The properties of VB object are enumerable, it's unaffected by descriptor
enumerable
- Use NPM:
npm install -S object-defineproperty-ie
- Download directly: Development Version, Production Version
<script src="path/to/object-defineproperty-ie.js" type="text/javascript"></script>
<script type="text/javascript">
var temp;
var obj = Object.defineProperties({}, {
prop1: {
enumerable: true,
get: function () {
return temp;
},
set: function (value) {
temp = value;
}
},
prop2: {
enumerable: true,
configurable: true,
value: 'Hello World'
},
});
obj.prop = 123;
// obj => {
// prop1: 123,
// prop2: 'Hello World'
// }
Object.defineProperty(obj, 'prop2', {
value: 'Ambit-Tsai'
});
// obj => {
// prop1: 123,
// prop2: 'Ambit-Tsai'
// }
var desc = Object.getOwnPropertyDescriptor(obj, 'prop2');
// desc => {
// enumerable: true,
// configurable: true,
// writable: false,
// value: "Ambit-Tsai"
// }
</script>
- Access GitHub Page online
- Access
docs/index.html
locally - Tested in IE6, IE7, IE8
- WeChat: ambit_tsai
- QQ Group: 663286147
- E-mail: ambit_tsai@qq.com