• 2019.1.4JavaScript


    对象:

    创建对象:

    =============通过对象字面量的形式创建对象=============

    var obj={};        //没有任何属性的对象     //对象用{ }  
    alert(typeof obj);       //输出的数据类型 Object

    var obj1={x:1,y:2,z:3};      //有属性的对象,键值对  x:键  1值
    var obj2={            //对象里面可以放键值对,也可以放方法  后面用逗号隔开
    'x':1,                //Javascript关键字必须放到引号之间 如:for  while  do  delete等
    "y":2,
    username:'king',
    'for':'Javascript关键字必须放到引号之间',
    'first-name':'queen',
    married:true,
    test:null,
    test1:undefined,
    salary:12.3,
    person:{
    username:'king',
    age:12,
    addr:'北京'
    }

    };

    ====================通过new Object()创建对象=================

    var obj3=new Object();        //创建一个空对象,{}
    var arr=new Array();          //空数组,[]
    var date=new Date();          //日期时间对象
    var reg=new RegExp('js');         //创建正则对象
    console.log();

    ===================通过构造函数的形式创建对象=================

    function Test(){          //Test 函数名

    }

    var obj4=new Test();

    alert(typeof obj4);

    function Test1(num1,num2){      //形参
    this.n1=num1;
    this.n2=num2;
    }
    var obj5=new Test1(5,6);        //参数

    alert(obj5 instanceof Test1);        //instanceof实例化    判断对象obj4是不是由函数Test来创建的 结果为布尔类型  true

    =================通过Object.create()创建对象============

    var obj6=Object.create({x:1});
    var obj7=Object.create(null);

    var obj8=Object.create(Object.prototype);      //创建一个普通的空对象  也可以是上面那个
    alert(typeof obj8);

    ===============增删改查===============

    查询属性,对象.属性名/对象["属性名"]

    var person={              //创建一个对象
    username:'king',
    age:12,
    salary:1234.56,
    addr:'北京',
    sex:'男',
    };

    console.log('用户名为:'+person.username+"\n"+'性别:'+person.sex);    //查询属性 对象.属性名
    console.log('薪水:'+person['salary']+'\n'+'地址:'+person["addr"]);      //查询属性  对象["属性名"]  一般用这一种

    如果属性不确定,需要使用[ ]

    var key='username';      
    console.log(person.key);        //输出结果为undefined  因为上面的对象没有key

    console.log(person[key]);        //输出的结果就为king
    console.log(person['key']);         //属性名用引号来包,而上面的对象没有key

    function PersonInfo(name,age,sex){        //通过构造函数的形式来创建对象
    this.name=name;                //定义对象名
    this.age=age;
    this.sex=sex;
    }
    var person1=new PersonInfo('king',34,'男');        //创建了三个属性

    console.log(person1.name+person['sex']);        //输出对象的属性

    添加属性:

    var obj={};//空对象      //创建一个空对象

    obj.username='king';       //直接创建属性进行添加  .属性名
    obj.age=12;
    obj.addr='北京';
    obj['test']='this is a test';        //[ "属性名" ]
    console.log(obj.username+'\n'+obj.age+'\n'+obj.addr+'\n'+obj['test']);    //输出的结果就是上面对象的属性

    修改指定属性:

    obj.username='queen';      //也是直接修改
    obj['test']='ymt';          //重新赋值
    console.log('修改之后的名字'+obj.username);        //输出的结果为:修改之后的名字queen  
    console.log(obj['test']);                  //test

    通过delete删除指定属性:

    delete obj['test'];            //直接删除指定的属性,
    console.log(obj['test']);          //输出的结果就为undefined
    delete obj.username;
    console.log(obj['username']);
    console.log(obj);            //删除过的属性,原始位置不保留,且新属性不占前面的位置,直接排在后面

    通过for/in遍历属性:

    var obj1={
    x:1,
    y:2,
    test:'this is a test',
    edu:'ymt'
    };
    for(var p in obj1){        //p在obj1对象中

    console.log(p+'\n');        //输出p,输出的是对象中所以的键
    }

    对象中有方法:

    var obj2={                //创建对象
    username:'king',
    age:12,
    addr:'北京',
    sayHi:function (){                //创建匿名函数对象属性
    return 'say Hi';
    },
    info:function(){
    return '用户名:'+this.username+'\n'+'年龄:'+this.age+'\n地址:'+this.addr;      //创建匿名函数对象属性
    }
    };
    console.log(obj2.sayHi());          //输出的是函数里面要返回的内容:say Hi  要在对象名后面加()
    console.log(obj2.info());
    console.log(obj2.info);             //对象名狗不加()回输出info后的整个属性内容

    function Person(username,age,sex,addr){      //形参
    this.username=username; //后形参      
    this.age=age;
    this.sex=sex;
    this.addr=addr;
    this.info=function(){
    return this.username+this.addr;
    }
    }
    var p1=new Person('queen',34,'女','上海');        //参数
    console.log(p1.info());

    p1.test='this is a test';        //添加了一个属性
    console.log(p1.test);        //输出结果this is a test

    p1.info1=function(){            //添加了一个函数方法
    return 'this is a test1111';          //返回
    };
    console.log(p1.info1());            //结果输出this is a test1111

  • 相关阅读:
    IntelliJ IDEA如何导入Gradle项目
    C#对图像像素处理的三种方式
    用BitBlt截取整屏后半透明窗口不能显示的解决办法
    Kestrel gRPC
    aspnetcore datetime json格式化
    netcore rabbitMq
    Nginx 1.8 单元控制文件
    mysql 单元控制文件
    redis 单元控制文件
    devtoolset对应gcc的版本
  • 原文地址:https://www.cnblogs.com/liuwei1/p/10218719.html
Copyright © 2020-2023  润新知