对象的分类及创建方式

对象分为:1.内建对象(Math、String、Number、Object等等)  2.宿主对象(JS的运行环境提供的对象,主要指浏览器提供的对象DOM、BOM) 3.自定义对象(编程人员自定义的对象)

创建对象的几种方式:

1.使用构造函数创建:

    var obj = new Object();
    console.log(obj);/* Object {} */
    console.log(typeof obj);/* object */

通过new关键字调用的函数就是构造函数(constructor)

可以通过 对象.属性名=值 的方式为对象添加、读取、修改属性(值可以是任何类型):

    var obj = new Object();
    obj.name = '黎明';
    obj.age = 24;
    console.log(obj);/* Object {name:"黎明",age:24} */
    console.log(typeof obj);/* object */

如果读取对象中不存在的属性会返回 Undefined ,但不会直接报错!

这里说一下特殊情况:

    var obj = new Object();
    obj.5456 = 5456
    console.log(obj.5456) /* 报错 */

如果属性名比较特殊(如数字开头、使用了变量),则必须通过 对象[变量名]对象["属性名"] 获取、添加、修改属性!

    var message = "hello";
    var obj = new Object();
    obj["5456"] = 5456;
    obj[message] = "你好"
    console.log(obj["5456"]) /* 5456 */
    console.log(obj[message]) /* 你好 */
    console.log(obj);/* Object {5456: 5456, hello: "你好"} */

值可以是任何类型:

    var message = "hello";
    var obj = new Object();
    obj["5456"] = 5456;
    obj[message] = "你好"

    var obj2 = new Object();
    obj2.num = 58;
    obj2.txt = obj;
    console.log(obj2);/* Object {num: 58, txt: {5456: 5456, hello: "你好"} */
    console.log(obj2.txt[message]) /* 你好 */

如何检查一个对象中是否有某个属性?

    var message = "hello";
    var obj = new Object();
    obj["5456"] = 5456;
    obj[message] = "你好"

    var obj2 = new Object();
    obj2.num = 58;
    obj2.txt = obj;
    console.log("txt" in obj); /* false */
    console.log("txt" in obj2); /* true */

通过 "属性名" in 对象 来检测对象中是否含有某属性(返回值为 true 或 false )。

如何修改对象内属性对应的值?

    var obj = new Object();
    obj.name = '黎明';
    obj.age = 24;
    console.log(obj);/* Object {name:"黎明",age:24} */
    console.log(typeof obj);/* object */

    obj.age = 50;
    console.log(obj);/* Object {name:"黎明",age:50} */
    console.log(typeof obj);/* object */

实际上和给属性赋值一样,只不过赋的是新值(对象.属性名=新值)。

如何删除对象内的某个属性?

    var obj = new Object();
    obj.name = '黎明';
    obj.age = 24;
    console.log(obj);/* Object {name:"黎明",age:24} */
    console.log(typeof obj);/* object */

    delete obj.age;
    console.log(obj.age);/* Undefined */
    console.log(obj);/* Object {name:"黎明"} */

通过delete关键字删除对象内的某个属性(delete 对象.属性名),删除之后该属性直接为 Undefined 。

2.使用对象字面量创建

var obj = {}

var obj = {name:"利民"}

 

posted @ 2021-04-14 01:09  coder、L  阅读(583)  评论(0编辑  收藏  举报