module2-03-对象的基本使用
作者:互联网
对象的基本使用
一、对象的概念
-
数组中存入的数据受系啊表限制又必须有固定顺序,而对象可以自定义名称无序的数据
1.1 什么是对象?
-
生活中万物皆对象,对象就是一个具体的事物,一个具体的事物就会有行为和特征
-
一部车,一个手机
-
车市一类,门口停的那辆车才是对象
-
-
特征:红色,四个轮子
-
行为:驾驶、刹车
-
1.2 js中的对象
-
生活中对对象的一个抽象
-
js的对象市无序属性的集合
-
-
其属性包含基本值、对象或函数。可以把js中的对象想象成键值对,其中值可以实数据和函数
-
对象的行为和特征
-
特征---在对象中用属性表示
-
行为---在对象中用方法表示
-
二、对象的创建和使用方法
2.1 对象的创建
(1)对象字面量创建
-
用一个简单的方式使用对象字面量赋值给变量,类似数组([])
-
内部可以存放多条数据,用逗号分隔,最后一个不要加逗号
-
每条数据都有属性名和属性值:k: v
-
k:属性名
-
v:属性值,可以是任意类型的数据
-
var person1 = {
name: 'zs',
age: 18,
sex: 'male',
sayHi: function () {
console.log('你好')
}
}
区分属性和方法
-
属性:对象的描述性特征,一般是名词,相当于定义在对象内部的变量
-
方法:对象的行为和技能,一般是动词,定义在对象中的函数
(2)其它的创建对象方法
① new Object()创建
-
使用Object()构造函数创建,其是一种特殊的函数,主要用来在创建对象时初始化对象,即未对象成员赋初始值,要与new运算符一起使用
-
构造函数用域创建一类对象,首字母要大写
-
-
构造函数要和new一起使用才有意义
-
new在执行的时候做的事情
-
new会在内存中创建一个新的空对象
-
-
new会让this指向这个新的对象
-
-
执行构造函数 目的:给这个新对象加属性和方法
-
-
new会返回这个新对象
-
② 工厂函数创建对象
-
将new Object()过程封装到一个函数中,将来调用函数就能创建一个对象,用于简化代码
function createPerson (name, age, sex) {
// 创建一个空对象
var person = new Object()
// 添加属性和方法,属性可以接受参数的值
person.name = name
person.age = age
person.sex = sex
per.sayHi = function () {
console.log('hello')
}
// 将对象作为函数返回值
}
var p1 = createPerson('zs', 18, ‘male’)
③ 自定义构造函数
-
比工厂函数简单
-
自定义一个创建具体对象的构造函数,函数的内部不需要new一个构造函数的过程,直接使用this代替对象进行属性和方法的书写,也不需要return一个返回值
-
使用时,利用new关键字调用自定义的构造函数即可
-
注意:构造函数的函数命首字母需要大写,区别于其它普通函数名
function Person (name, age, sex) {
// 不需要创建{}
this.name = name
this.age = age
this.sex = sex
this.sayHi = function () {
console.log('hello')
}
// 不需要return
}
2.2 对象数据的调用和更改
(1)调用对象内部属性和方法的语法
-
对象的变量名,打点或者[]一个属性名,得到属性值
-
对象内部使用this打点/[]调用属性名,this代替对象
-
调用方法,打点/[]方法名然后()调用
var person1 = {
name: 'zs',
sayHi: funtion () {
console.log(this.name + ': 你好')
}
}
person1.sayHi() // zs: 你好
(2)更改对象内部属性和方法语法
-
更改属性:先调用属性,再等号赋值
-
o.age = 19
-
-
增加新的属性和属性值:点语法或[]新属性名,再等号赋值
-
o.newKey = 'newValue'
-
-
删除一条属性:delete关键字
-
delete o.sex
-
三、对象遍历
-
for in循环也是循环的一种,专门用来遍历对象,内部定义一个k变量,k在每次循环的时候会从第一个开始k接受属性名,执行完推出循环
for (var k in obj) {
console.log(obj[k]) // 要用[]才能输出变量
}
标签:03,name,对象,module2,sex,new,属性,构造函数 来源: https://www.cnblogs.com/lezaizhu/p/14093736.html