您的位置:首页 > Web前端 > JavaScript

JavaScript入门基础--对象

2017-05-17 22:09 417 查看
JavaScript入门基础--对象

1.对象也是变量,但对象可以包含多个值(多个变量)

  对象属性:键值对 name :  value,对象的属性是无序的

2.创建对象

  ① var obj = { x : 1, y : 1} ; 

  ②new/原型链 :  function foo(){}

                                 var obj = new foo();

3.属性操作

例1: var obj = { x : 1, y : 2};

读: obj.x

         obj ["y"]

增:obj.z = 3;

删:delete obj.x

        delete obj [" y " ]

 注:obj.prototype是不能被删除的

         全局变量,局部变量,全局函数,局部函数 大多情况下都是不可以被 delete的

查:获取一个属性中的所有标签

     var desc = Object.getOwnPropertyDescriptor ( Object , ' prototype ');  

//Object:查看的对象, prototypr:要检测的属性

      desc.configurable; //是否可配置,返回false或true

4.属性检测

例2:var cat = new Object;

          cat.legs = 4;

         cat.name = " kitty ";

 in: 会(原型链)向上 查找 。   

                                如: ‘legs’ in cat  //返回 true  , 

                                          'aaa
4000
' in cat; //返回false ,  

                                         "toString"  in cat ;    // 返回true,inherited property

hasOwnProperty():
查找对象上是否属性是否存在。  

                               如:cat.hasOwnProperty(' legs ');  // 返回true

                                       cat.hasOwnProperty(' toString ');  // 返回false

propertyIsEnumerable(): 属性是否可以被枚举 。

                              如:cat.propertyIsEnumerable('legs'); //true

                                      cat.propertyIsEnumerable('toString');//false

defineProperty():添加对象属性

                               如:Object.defineProperty(cat, ' price ',{ enumerable : true, values : 10000 });

                                    // cat:选择的对象,price:要添加的属性  enumberable: 是否可以被枚举,若不设置默认false

区别:            if(cat.legs != undefined){} //  表示不等于 undefine,也不等于 null

                        if(cat.legs !== undefined){} // 表示不等于undefine

5.属性getter / setter方法

例3:

var man = {

 get age(){

return 12;

},

set age( a ){

console.log('我的年龄' + a);

}

}

console.log(man.age);
 //自动调用get()方法,返回12

man.age = 100; //自动调用set()方法

console.log(man.age);  //我的年龄 100

6.属性标签

        value: 值

        writable:是否可以写嗯,修改.设置默认false

        enumerable:是否可以被遍历,枚举,设置默认false

configurable:上述标签(writable,enumerable)是否可再修改,是否可以delete,设置默认false

 

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: