首页 > Web开发 > 详细

js对象的理解

时间:2015-12-27 23:09:15      阅读:225      评论:0      收藏:0      [点我收藏+]

一. 如何理解js中的对象

  1.抽象的角度:针对现实中的具体事物的一种抽象。

  2.数据的角度:将无需的变量集合在一起。

二. 对象的特性:通过设置Object的defineProperty方法实现

  Object.defineProperty(param1,param2,param3)param1需要定义属性的对象。param2需被定义或修改的属性名。param3需被定义或修改的属性的描述符。

  1.可配置性:configurable(true/false)默认值为true,表明属性是否可删除

    

       var person = {
           name: "zhangsan",
           age: 21,
           sayName: function() {
               console.log(this.name);
           }
       };

       Object.defineProperty(person, "name", {
           configurable: false
       });

  
    false表示不能删除,所以依然能够打印出zhangsan

    打印结果为:zhangsan,21

  2.枚举性:enumerable(true/false)默认值为true,表明属性的可访问性

    

       var person = {
           name: "zhangsan",
           age: 21,
           sayName: function() {
               console.log(this.name);
           }
       };

       Object.defineProperty(person, "name", {
           enumerable: false
       });
       for(var attr in person) {
           console.log(attr + ":" + person[attr]);
       }

    

    false表示不能访问到person对象的name属性,所以控制台打印不出person的name

    打印结果为:

      age:21
      sayName:function () {
        console.log(this.name);
      }

  3.可修改:writable(true/false)默认值为true,表明属性的可修改性

    

var person = {
           name: "zhangsan",
           age: 21,
           sayName: function() {
               console.log(this.name);
           }
       };
Object.defineProperty(person, "name", {
            writable: false
        });
        person.name = "lis";
        console.log(person.name);

    

    false表示不能修改,所以打印结果还是zhangsan,如果是true或者不设置,打印结果就是lis,21

    打印结果为:zhangsan,21

js对象的理解

原文:http://www.cnblogs.com/Shirley-He/p/5080945.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!