JS对象的创建
创建方式
1.字面量创建
用字面量创建对象是和创建一个变量一样
//使用字面量创建对象
var student = {
name: "xiaoma",
studentNumber: "202402200001",
class: "computer-1",
show: function (girlfriend) {
console.log(this.name + "的女友是" + girlfriend);
}
};
console.log(student.name);
console.log(student.class);
console.log(student.studentNumber);
student.show("xiaohua");
1.1解析:
(1)下面是我们用字面量创建的对象,这也是在开发中使用最多的创建方式。和创建一个数组是一样的,但不要写成[ ]。
var student = {};
(2)里面的如name等叫做对象的属性,在设置对象属性是一定要注意以下两点。
-
name后面一定要跟英文的冒号“:”
-
属性与属性之间是用英文逗号隔开的“,”
name: "xiaoma",
studentNumber: "202402200001",
(3)像show我们不叫它属性而是称它为对象方法(也就是对象里面的函数),它的创建不用函数名,show就是它的函数名了。调用时用show调用就可以了。同样girlfriend是它的形参。
show: function (girlfriend) {
console.log(this.name + "的女友是" + girlfriend);
}
(4)控制台显示和函数调用时注意以下
- 控制台显示需要注意括号()里面是(对象名.对象属性名),还有对象方法里面使用这些属性是一定要是这样this.name。
console.log(student.studentNumber);
console.log(this.name + "的女友是" + girlfriend);
- 跟上面一样调用是也注意是这样调用的:
console.log(student.studentNumber);
console.log(this.name + "的女友是" + girlfriend);
1.2运行结果
1.3总结
- 有学过c语言的可以感受到和c语言中的结构体类似。
- name后面一定要跟英文的冒号“:”
- 属性与属性之间是用英文逗号隔开的“,”
- 控制台显示需要注意括号()里面是(对象名.对象属性名),还有对象方法里面使用这些属性是一定要是这样this.name,函数调用也一样。
2.使用new关键字创建对象
使用new创建的对象是一个空对象,它没有花括号,要在外面设置对象属性。
var student = new Object();
student.name = "xiaoma";
student.class = "computer-1";
student.studentNumber = "202402200001";
student.show = function (girlfriend) {
console.log(this.name + "的女友是" + girlfriend);
};
student.show('xiaohua');
2.1解释
(1)先使用new关键词创建一个空对象,这里有一个非常重要的点就是这里的Object中的O是大写。
var student = new Object();
(2)创建完空对象我们给空对像添加属性,还有对象方法。这里注意的事项还挺多的我在下面罗列出来。
-
这里设置属性是在外面设置属性所以属性与属性之间是用英文分号“;”隔开的。
-
在设置属性时不像前面直接是(属性名:值),而是要把对象名加上。比如:
-
属性名与值之间是用等号而不是冒号。
student.name = "xiaoma";
- 同理创建对象方法和字面变量也有不同是下面的样子设置。
student.show = function (girlfriend) {
console.log(this.name + "的女友是" + girlfriend);
};
(3)使用对象和字面变量一样在这不再罗列。
2.2运行结果
2.3总结
- 这里设置属性是在外面设置属性所以属性与属性之间是用英文分号“;”隔开的。
- 在设置属性时不像前面直接是(属性名:值),而是要把对象名加上。
- 属性名与值之间是用等号而不是冒号。
- 同理创建对象方法和字面变量也有不同是下面的样子设置。
3.通过构造函数创建对象
在我们使用对象描述一个学生创建一个对象,这样当学生数量增加时相应创建的对象也就多了,浪费空间,而且每个学生都有共同的特点。现在使用构造函数的形式创建对象,可以让每个学生调用共同的属性。
function Student(name, age) {
this.name = name;
this.age = age;
this.sayHelloTo = function (name) {
console.log('你好!' + name);
};
}
var student1 = Student("xiaoma", 22);
var student2 = Student("xiaohua", 18);
var student3 = Student("xiaomei", 18);
3.1解释
(1)和创建函数一样,有形参。这里的属性是用this进行设置的。this在下面的篇幅中会讲到。
(2)对象的方法的创建和前面大同小异。
**(3)对象的调用和函数的调用相同。
注释:下一节:对象的使用、对象属性的使用、对象方法的使用以及内置对象。