老师为啥不直接定义函数

老师为啥不直接定义函数

<!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的方法的意义在哪儿


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,可以实现的效果是一样的,由于代码的灵活性,实现效果的方式不是唯一的。

defineProperty的作用就是直接在一个对象上定义一个新属性,或者修改一个已经存在的属性。

语法如下:

1
Object.defineProperty(obj, prop, desc)

obj 需要定义属性的当前对象

prop 当前需要定义的属性名

desc 属性描述符,简单的理解就是设置属性的值或者属性是否可以修改。

这两种都是可以的哦,就是defineProperty是直接定义在obj上面的,可直接在对象上面定义属性。

祝学习愉快~

  • 洋芋儿泥 提问者 #1
    也就是说在object这个对象上直接加了个方法
    2020-04-15 11:25:59
  • 洋芋儿泥 提问者 #2
    这样就不用每次调用函数,而是直接使用object上的方法
    2020-04-15 11:28:33
好帮手慕糖 2020-04-15 16:35:49

同学你好,是的哦。

祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码