利用获取函数和设置函数完成对象属性的值初始化
方式一:计算属性
<script>
src = {
set a(value) {
a = value;
},
get a() {
return a;
}
};
// 注意:这里不管赋值先后顺序
console.log(src.a);//fun1
src.a = "fun1";
console.log(src.a);//fun1
</script>
方式二:修改属性默认特性
<script>
var src = {};
Object.defineProperty(src, 'a', {
writable: true
});
console.log(src.a);//undefined
src.a = "fun1";
console.log(src.a);//fun1
</script>
方式三:通过访问器属性间接赋值
<script>
var src = {
_a: ''
}
Object.defineProperty(src, 'a', {
get() {
return this._a;
},
set(value) {
this._a = value;
}
})
console.log(src.a);//''
src.a = 'fun1';
console.log(src.a);//fun1
</script>
方式四:es5之前的老方法
<script>
var src = {
_a: ''
};
src.__defineSetter__('a', function (value) {
this._a = value;
});
src.__defineGetter__('a', function () {
return this._a;
})
console.log(src.a);//''
src.a = 'fun1';
console.log(src.a);//fun1 */
</script>