JavaScript,对象!!!

184 阅读2分钟

前言

“万物皆对象,没有对象就new一个对象”
‘你有对象吗‘,在js中,对象可不是女朋友,对象可是很流批的,几乎“所有事物”都是对象。例如定义一辆车为对象,那么它的颜色啊,大小,轮子数目啊等,都是它的属性下面我们来好好说说对象。

对象

前面我们说了数组可是非常非常重要的,其实数组也是对象。数组是有序性的,它的下标是有顺序的。而对象是无序性。

对象的定义

描述同一类型的事物{属性:属性值,方法:函数},属于引用数据类型
字面量声明 var obj = {};
构造函数声明 var obj = new Object();

  var dog = {
            name : '二哈',
            age : 3 ,
            sex : '公',
            say : function () {  
                console.log('汪');
            }
        }
   // 实例化对象  -- 空对象
        var obj = new Object() ;
        // 赋值
        obj.name = '奔驰' ;
        obj.color = 'pink' ;
        obj.price = '100w' ;

对象的访问方式:

  • 两种访问方式: dog['name'] dog['age']与数组类似
    点语法 dog.name dog.age

对象的遍历

for in的方法在数组里面已经说过了,但是这是对象唯一的遍历方法。一般定义key遍量为键值。

  for (var key in dog) {
            console.log(key);//打印属性名
            console.log(dog[key]);//打印属性值
        }

对象的浅复制与深复制

前面我也说了数组的浅复制与深复制,其实差不多,因为,数据就是对象嘛,浅复制复制的是地址,深复制复制的是

浅复制:

var person1 = {
            name : '方总' ,
            age : 18
        }

        //浅复制
        var person2 = person1 ;
        person2.name = '师爷' ;
        console.log(person1) ;  //此时person1的name属性也是'师爷'

深复制:

//深复制 , 通过遍历赋值
        var person2 = new Object() ;
        for(var key in person1){
            //将person1的值通过遍历赋给person2
            person2[key] = person1[key] ;
        }
        console.log(pesson2) ;  
        person2.age = 20 ;
        console.log(person1) ; 
        //此时person2的age属性变成了20,但是person1的属性还是18

补充:说说模板字符串 变量 ${},键盘数字1的左边,看下面语法

 var a = 'hello' ;
// document.write('<h1>' + a + '</h1>')/可用下面的表示
document.write(`<h1>${a}</h1>`)