Skip to content

对象

对象的创建

属性: 名:值,
名:string: 隐式地转化为 string 1 -> "1" x123 -> 字母和数字组合,以字母开头,可以不加引号
如果包含里特殊字符 例如空格,连接符,必须得加上引号 "first name"

1
2
3
4
5
6
7
8
var obj1 = {
    "x": 0,
    x: 1,
    y: 1,
    x123: 222,
    "first name": "hhh",
    z: function() { console.log("z func"); }
}

属性操作

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
var person1 = {
    name: "xiaoming",
    sex: "male",
    age: "18",
    "first name": "cai",
    sun: {
        name: "xiao xiao ming",
    },
    slogan: function() {
        for (var i = 0; i < 10; i++) {
            console.log("wo shi xiao ming");
        }
    }
}
var name = person1.name; 
name = person1["name"] // 包含特殊字符不能用 . 访问,只能用引号访问
person1["name"] = "xiao ming 2 hao";
// 增加:修改属性的时候,如果对象里面没有这条属性,自动加上
person1.height = 170;
// 删除
delete person1.name;
var xiaoxiaoming = person1.sun;
delete person1.sun;
// 遍历
// for (var pN in person1) {
//     console.log("person1 的属性名: " + pN);
// }
// person1 的属性名: sex
// person1 的属性名: age
// person1 的属性名: first name
// person1 的属性名: slogan
// person1 的属性名: height
for (var pN in person1) {
    console.log("person1 的属性名: " + pN + " 值 = " + person1[pN]);
}
// person1 的属性名: sex 值 = male
// person1 的属性名: age 值 = 18
// person1 的属性名: first name 值 = cai
// person1 的属性名: slogan 值 = function() {
//         for (var i = 0; i < 10; i++) {
//             console.log("wo shi xiao ming");
//         }
//     }
// person1 的属性名: height 值 = 170

引用、自定义类

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// 引用和赋值
var person1 = {
    name: "xiaoming",
    sex: "male",
    age: "18",
    "first name": "cai",
    sun: {
        name: "xiao xiao ming",
    },
    slogan: function() {
        for (var i = 0; i < 10; i++) {
            console.log("wo shi xiao ming");
        }
    }
}
// 创建新的对象 xiaoming2
var person2 = person1; // 引用,复制地址
person2.name = "xiaoming2";
// 用类的形式创建对象
// ES5 function -> ES6 class
// 为了区分函数和类 类
function PersonClass() {
    this.name = "xiaoming";
    this.sex = "male";
    this.age = "19";
    this.slogan = function() {
        for (var i = 0; i < 10; i++) {
            console.log("wo shi xiao ming");
        }
    }
}
var person3 = new PersonClass();
var person4 = new PersonClass();
person4.name = "xiaohong";
// 构造函数方式
function PersonClass(pName, pSex, pAge) {
    this.name = pName || "xiaoming";
    this.sex = pSex;
    this.age = pAge;
    this.slogan = function() {
        // for (var i = 0; i < 10; i++) {
        console.log("wo shi" + this.name);
        // }
    }
}
var person5 = new PersonClass("xiaoming", "male", 18);
var person6 = new PersonClass("xiaohong", "female", 15);

基本包装类型

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
var obj1 = {};
var obj2 = new Object(); // 空对象
// 对象:值 + 方法
// Object -> 打包 最底层 类
// 万物皆对象 值 + 方法
// 数字 123 -> Number 对象
// 字符串 String 对象
// true false Boolean 对象
var n1 = 123;
var str1 = n1.toString();
// Array 对象
// 时间相关的对象:Date
var time1 = new Date(); // 获取类当前时间,本地电脑的时间
var t = 0;
for (var i = 0; i < 10000000; i++) {
    t++;
}
var time2 = new Date();
var n = time2.getTime() - time1.getTime();
// 数学相关的对象 Math 不是一个类 相当于命名空间
// 随机数 Math.random() 返回 0~1之间的数
for (var i = 0; i < 10; i++) {
    // console.log(Math.random());
    // console.log(Math.random() * 10);
    console.log(Math.floor(Math.random() * 10));
}