javascript - 一道JS笔试题目,不太明白,求讲解
本文介绍了javascript - 一道JS笔试题目,不太明白,求讲解的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
function A(params) {
params = params || {};
for(var key in params){
Object.defineProperty(this, key, {
get : function() {
return params[key]
},
enumerable : false
});
}
}
var a = new A({
'x' : 'X',
'y' : 'Y',
'z' : 'Z'
})
console.log(a.x);
结果是Z,有点不太想得明白,控制台输出实例如下:
解决方案
原因其实很简单, 问题就出在for循环里
for(var key in params){
Object.defineProperty(this, key, {
get : function() {
return params[key]
},
enumerable : false
});
}
这里最终key === 'z', 而其他属性的结果都是返回params[key], 也就是params['z']
这篇关于javascript - 一道JS笔试题目,不太明白,求讲解的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文