标签:03 name 对象 module2 sex new 属性 构造函数
对象的基本使用
一、对象的概念
-
数组中存入的数据受系啊表限制又必须有固定顺序,而对象可以自定义名称无序的数据
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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。