JavaScript_note_6

JavaScript_note_6

Charles Lv7

JavaScript_note_6

JavaScript中的对象

课程内容细节:

  1. 对象是JavaScript中的一种复合数据类型,它可以把多个数据集中在一个变量中,并且给其中的 每个数据起名字。或者说,对象是一个属性集合,每个属性有自己的名字和值。(JavaScript并不像其他OOP(Object-oriented Programming)语言那样有类的概念,不是先设计好类再制造对象)
  2. 创建对象的两种方法:
1
2
3
4
5
6
var o = new Object();
var ciclr = {
x: 0,
y: 0,
radius: 2
};
  1. 不同于其他编程语言,JavaScript中即使构造时不存在的属性也可以在之后随时添加。
  2. 删除对象的两种方式:
1
2
3
delete book.chapter1;

book.chapter1 = null;
  1. 对象可以像数组一样用下标访问,此时用来访问的下标为该对象的名字。
  2. JavaScript中的构造函数不直接构造对象、通过this来定义成员且没有return。通过定义构造函数可以定义任意数量的对象。(定义方法和函数相同)
  3. JavaScript中存在原型对象,对象的prototype属性指定了它的原型对象,可以用.运算符直接读它的原型对象的属性,当写这个属性时才在它自己内部产生实际的属性。(类似于默认参数)
  4. JavaScript同样存在类似浅拷贝和深拷贝的区别。(即共享常量池)

完整代码:

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
48
49
50
51
52
53
54
<html>

<head>
<meta charset="utf-8">
</head>

<body>
<script>
var book = new Object();
book.title = "HTML5秘籍";
book.translator = "李松峰";
book.chapter1 = new Object();
book.chapter1.title = "HTML5简介";
//delete
delete book.chapter1;
book.chapter1 = null;
//遍历
var o = new Object();
o.name = "John Mike";
o.age = 30;
o.salary = 300;
alert(o);
for (var x in o) {
alert(x + "=" + o[x]);
}

function Rect(width, height) {
this.width = width;
this.height = height;
this.area = function () {
return this.width * this.height;
}
}
var r = new Rect(5, 10);
alert(r.area());
//原型对象
function Person() {
Person.prototype.name = "Nicholas";
Person.prototype.age = 29;
Person.prototype.job = "Software Engineer";
Person.prototype.sayName = function () {
alert(this.name);
}
}
var person1 = new Person();
person1.sayName();
person1.name = "Greg";
var person2 = new Person();
person2.sayName();
alert(person1.sayName == person2.sayName);
</script>
</body>

</html>

课后补充

JavaScript 对象

  • JavaScript 对象是拥有属性和方法的数据。

可以使用字符来定义和创建 JavaScript 对象,定义 JavaScript 对象可以跨越多行,空格跟换行不是必须的:

1
2
3
4
5
6
var person = {
    firstName:"John",
    lastName:"Doe",
    age:50,
    eyeColor:"blue"
};

可以说 “JavaScript 对象是变量的容器”。但是,我们通常认为 “JavaScript 对象是键值对的容器”。键值对通常写法为 name : value (键与值以冒号分割)。键值对在 JavaScript 对象通常称为 对象属性

这种写法类似c++的hash表

对象的方法定义了一个函数,并作为对象的属性存储。对象方法通过添加 () 调用 (作为一个函数)。

  • Title: JavaScript_note_6
  • Author: Charles
  • Created at : 2023-02-02 15:49:28
  • Updated at : 2023-08-18 17:59:25
  • Link: https://charles2530.github.io/2023/02/02/javascript-note-6/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments