对象
概念
是一个具体的事物,js
中,对象是一组无序的相关 “属性” 和 “方法” 的集合。
- 属性:事物的特征,在对象中用属性来表示
- 属性都成对出现,包括属性名和值,它们之间用
:
隔开。 - 多个属性用英文
,
隔开。 - 属性就是依附在对象上的变量。
- 属性名允许有空格、横线存在,需要用英文单引号括起来(不建议这种写法,采用驼峰命名法更好)。
- 属性都成对出现,包括属性名和值,它们之间用
- 方法:事物的行为,在对象中用方法来表示
- 方法是由方法名和函数两部分构成,它们之间用
:
分隔。 - 多个属性之间用英文
,
分隔。 - 方法是依附在对象中的函数。
- 方法名可以使用
""
或''
,一般情况下省略,除非名称遇到特殊符号如空格、中横线等。
- 方法是由方法名和函数两部分构成,它们之间用
使用
创建
-
. 用字面量创建对象
var obj = { name: '张三', age: 18, sex: '男', sayHi: function(){ console.log('Hi~); } };
- 里面的属性或者方法我们采取键值对的形式,键 属性名:值 属性值
- 多个属性或者方法中间用逗号隔开
- 方法冒号后面跟的是一个匿名函数
-
. 用
new Object
创建对象var obj = new Object(); // 这里的O要大写 obj.uname = 'lili'; obj.age = 18; obj.sayHi = function(){ console.log(hi~); }
- 利用等号 = 赋值的方法,添加对象的属性和方法
- 每个属性和方法之间用分号结束
-
. 用构造函数创建对象
一次创建一个对象,里面很多属性和方法是大量相同的,只能复制。
因此可以利用函数的方法,重复这些相同的代码,我们就把这个函数称为构造函数。
这些函数里面封装的不是普通代码,而是对象。
构造函数,就是把我们对象里面一些相同的属性和方法抽象出来封装到函数里面。function Love(uname, sex, age) { this.name = uname; this.age = age; this.sex = sex; this.sing = function(song) { console.log(song); } // 这里别忘记添加形参以便接收实参传来的参数 } let daodao = new Love('刀刀', '男', 18); // console.log(typeof daodao); 结果是undefined。调用返回的结果是一个对象 console.log(daodao.name); console.log(daodao['age']); daodao.sing('送');
- 构造函数首字母必须大写
- 构造函数不需要
return
就能返回结果 - 调用构造函数必须使用
new
- 只要new Love()调用函数就创建了一个对象
daodao{}
- 属性和方法前面必须添加
this
属性访问
-
调用对象的属性
-
对象名.属性名
consol.log(obj.name);
-
对象名[‘属性名’]
console.log(obj['name']);
注意:
用[]
的方式进行属性访问,会把[]
内的值看作变量,在全局变量中找该变量对应的值。
-
-
调用对象的方法
对象名.方法名obj.sayHi()
注意:
千万别忘记后面添加小括号。
操作
- 增
- 对象.方法 = 值
如果对象中没有设置的属性则会新增一个属性person.gender = '男' console.log(person.gender);
- 对象.方法 = 匿名函数
person.getTalk = function() { console.log('嘤嘤嘤'); } person.getTalk();
- 删
delete
对象.属性delete person.age console.log(person);
- 改
对象.属性 = 值
如果对象中有对应的属性则会更新属性值person.name = '刀刀' console.log(person['name']);
- 查
对象.属性console.log(person.name); console.log(person['age']);
遍历
for/in
——用于遍历对象的所有属性。
for (let k in obj) {
console.log(k); // k是变量,输出得到的是属性名
console.log(obj[k]); // 输出得到的是属性值
}
注意:
- 一般不用这个方法历数组,主要用于遍历对象。
- 一定记住:
k
是获取对象的属性名,对象名[k]是获取属性值。
内置对象
概念
供开发者使用,并提供了一些常用的、基础的属性和方法。
在线文档
数学对象 Math
不是构造函数,所以不需要 new
来调用,而是直接使用里面的属性和方法即可
- 最大值:
Math.max()
- 最小值:
Math.min()
- 绝对值:
Math.abs()
- 取整
- 向上取整:
Math.ceil()
- 向下取整:
Math.floor()
- 四舍五入:
Math.round()
。
- 向上取整:
- 随机数:
random()
封装获取随机数的函数function getRandom(min, max) { return Math.floor(Math.random() * (max - min + 1) + min) }
日期对象 Data
是一个构造函数,必须使用 new
来调用创建我们的日期对象
总结
今日错题
无,继续保持!