老师为啥不直接定义函数
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
var freezePolyfill = function(obj) {
var i;
for (i in obj) {
if (obj.hasOwnProperty(i)) {
Object.defineProperty(obj, i, {
writable: false
});
}
}
Object.seal(obj);
};
var aaa = {
age:14,
a:3
}
freezePolyfill(aaa);
aaa.a= 10;
aaa.b= 10;
console.log(aaa);
</script>
</body>
</html>
为啥不直接定义函数然后调用。用Object.defineProperty的方法的意义在哪儿
正在回答
同学你好,可以实现的效果是一样的,由于代码的灵活性,实现效果的方式不是唯一的。
defineProperty的作用就是直接在一个对象上定义一个新属性,或者修改一个已经存在的属性。
语法如下:
1 | Object.defineProperty(obj, prop, desc) |
obj 需要定义属性的当前对象
prop 当前需要定义的属性名
desc 属性描述符,简单的理解就是设置属性的值或者属性是否可以修改。
这两种都是可以的哦,就是defineProperty是直接定义在obj上面的,可直接在对象上面定义属性。
祝学习愉快~
- 参与学习 人
- 提交作业 239 份
- 解答问题 10739 个
本阶段带你深入前端开发的肌理,通过ES6基础知识和前端主流高级框架的学习,助你快速构建企业级移动webAPP应用,进入职场的终极battle
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧