对象

■ 关于对象

万物皆对象,对象是一个具体的事物,看得见摸得着的实物
JS中,对象是一组无序的相关属性和方法的集合
所有的事物都是对象,例如字符串,数值,数组,函数等
对象包含属性和方法
属性: 事物的特征,在对象中用属性来表示,常用名词
方法: 事物的行为,在对象中用方法来表示,常用动词

□ 变量和属性

  • 相同点: 都是用来存储数据的
  • 不同点:
    变量: 单独声明并赋值,使用时直接写变量名,单独存在
    属性: 在对象里不需要声明,使用时必须要通过"对象.属性"的方式、
var num = 10;
var obj = {
	age: 18  //没有使用var
}

□ 函数和方法

  • 相同点: 都是实现某种功能
  • 不同点:
    函数: 函数是单独声明并调用的,使用时通过"函数名()",单独存在
    方法: 在对象里面,使用时必须要通过"对象.方法名()"的方式

■ 对象的作用

保存一个值,可以使用变量
保存多个值(一组值),可以使用数组
保存多个方面的信息,可以使用对象,比如一个人的各种信息
因此,JS对象的表达结构更清晰,更强大

■ 对象的创建

□ 利用字面量

就是花括号{}里面包含了表达这个具体事物(对象)的属性和方法
里面的属性和方法采用键值对的形式,键就是属性名, 值就是属性值
键和值用冒号“”":“分隔,多个属性和方法用逗号”,"分隔
方法冒号后,跟着一个匿名函数

var obj = {};  //创建了一个空对象
var obj1 = {   //创建了一个包含属性name,age,sex和sayHi方法的对象
	name: 'Tom',
	age: 18,
	sex: 'female',
	sayHi: function(){
		console.log('Hi');
	}
}

□ new Object

通过等号赋值的方式添加对象的属性和方法
每个属性和方法之间用分号分隔

var obj = new Object(); //创建一个空对象
obj.name = 'Tom';
obj.age = 19;
obj.sex = 'female';
obj.sayHi = function(){
	console.log('Hi');
}

□ 构造函数

利用字面量和new Object这两种两种方式一次只能创建一个对象
对象里面的很多属性和方法是相同的,但创建时只能一个一个复制粘贴,很费时费力
利用构造函数的方法,就可以重复利用这些相同的代码
构造函数就是把对象里面一些相同的属性和方法抽象出来封装到函数里面

构造函数是一种特殊的函数,主要用来初始化对象,即为对象成员变量赋初始值
它总与new运算符一起使用
可以把对象中一些公共的属性和方法抽取出来,然后封装到这个函数里

构造函数的语法格式:

function 构造函数名(){
	this.属性 =;
	this.方法 = function(){
	}
}
var obj = new 构造函数名();
function SingStar(name,sex,age){
	this.name = name;
	this.sex = sex;
	this.age = age;
	this.sing = function(song){
		console.log(song);
	}
}
var singStar1 = new SingStar('刘德华','男''20');
console.log(typeof singStar1); //输出:object
console.log(singStar1.name); //输出:刘德华
console.log(singStar1['sex']); //输出:男
console.log(singStar1.age); //输出:20
singStar1.sing('笨小孩');

构造函数说明:

  • 构造函数名的首字母要大写
  • 构造函数不需要return即可返回结果
  • 调用构造函数,必须要使用new
  • 只要执行"new 构造函数()",就会创建一个对象
  • 属性和方法前,必须要使用this

构造函数特指某一类,对象特指某一个
通过构造函数的方式创建对象的过程,也称为对象实例化

□ new关键字

执行过程:

  1. 在内存中创建一个空对象
  2. 让this指向该空对象
  3. 执行构造函数里的代码,给该空对象添加属性和方法
  4. 返回这个对象,相当于return,因此构造方法不需要return

■ 对象的使用

语法:

对象名.属性名
对象名['属性名'] (必须要加引号)
对象名.方法名 (不要忘记小括号)
var obj1 = {   //创建了一个包含属性name,age,sex和sayHi方法的对象
	name: 'Tom',
	age: 18,
	sex: 'femal',
	sayHi: function(){
		console.log('Hi');
	}
}
console.log(obj1.name);
console.log(obj1['age']);
obj1.sayHi();

■ 遍历对象

for…in语句,用于对数组或对象的属性进行循环操作
一般来讲,通过for in遍历对象时,使用k或key
通常遍历属性,很少遍历方法
语法:

for (变量 in 对象){
	//遍历处理
}
var obj = new Object(); //创建一个空对象
obj.name = 'Tom';
obj.age = 19;
obj.sex = 'female';
obj.sayHi = function(){
	console.log('Hi');
}
for(var k in obj){
	console.log(k); //输出:属性名,name,age,sex
	console.log(obj[k]); //输出:属性值,Tom,19,female
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值