js对象不必过多解释了,我记得十几年前刚接触js时,有人说js不是面向对象的,而是基于对象的,那会还没有ES5,ES6等等,主流浏览器可能还是IE,但是现在大不同了,js已经成为开发语言第一梯队了。

1.创建对象

1. 通过对象字面量创建对象(对象初始化器?):

let person = {
    name: '硬汉',
    age: 36,
    address: '北京',
    ['P'+2*3]: '这是什么鬼?', // 属性名可以是一个表达式,但是需要用中括号包裹
    intro: function() { // 定义对象的方法
        console.log(`我是${this.name},今年${this.age}岁了,在${this['address']}上班`);
    },
    intro2() { // 定义方法的新语法
        console.log(` 我是${this.name},今年${this.age}岁了,在${this.address}上班 `);
    }
};

person.intro(); // 我是硬汉,今年36岁了,在北京上班
person['intro'](); // 括号访问方法?

2. 通过构造函数创建对象

function Person(name, age, address) { // 首字母推荐大写?看着更像是类
    this.name = name;
    this.age = age;
    this.address = address;
    this.intro = function () {
        console.log(`我是${this.name},今年${this.age}岁了,在${this['address']}上班`);
    }
}

let person = new Person('硬汉', 36, '北京'); // 用new关键字实例化
person.intro(); // 我是硬汉,今年36岁了,在北京上班

需要注意的是:
对象的属性,比如name,可以用引号包裹,也可以不用,但是如果有特殊字符,比如空格,-等,那就需要包裹。
新版js声明方法是funcName() {},大大简化,我之前不知道,所以第一次看uniapp时感觉这语法咋这么陌生呢,其实早就可以这样了。
属性名可以是表达式,需要用中括号包裹,里面甚至可以调用函数,只要结果是一个字符串即可。
除了可以用.点语法来访问对象的属性和方法,还可以用中括号,比如:person['name'],如果属性和方法名有特殊字符,那只能用中括号语法访问。

2.遍历对象

for(let k in person) {
    console.log(k); // 打印对象的属性和方法名
    console.log(person[k]); // 打印属性值和方法体
}

对象

评论