对象
- 对象的概念
在javascript中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串数组,函数等
对象是由属性和方法组成的
属性:事物的特征,在对象中用属性来表示,
方法:事物的行为,在对象中用方法来表示 - 为什么需要对象?
保存一个值时,可以使用变量,保存多个值时,可以使用数组,如果要保存一个人的完整信息,则需要对象,js中的对象表达结构跟清晰,更强大 - 创建对象的三种方式:
(1)利用字面量创建对象
<script>
//里用字面量创建对象
var obj={}//创建了一个空的对象
var objs={
names:"niuchangju",
age:17,
sayhi:function(){
console.log("hi")
}
}
//(1)里面的属性和方法,采取的是键值对的形式,键 属性名:值 属性值
//(2) 多个属性或者方法中间用逗号隔开,
//(3)方法冒号后跟的是一个匿名函数
//2.使用对象
//(1)调用对象的属性,采取 对象名.属性名
//(2)调用属性还有一种方法,对象名["属性名"]
//调用对象的方法 对象名.方法名()
objs.sayhi()
</script>
变量,属性,函数和方法的区别
a.变量和属性相同都可以用来存储数据
b.不同点:变量单独声明并赋值,使用的时候单独写变量名单独存在,属性是在对象里面不需要声明,使用的时候必须是 对象.属性
c.函数和方法的相同点:都是实现某种功能,做某件事
不同点:函数是单独声明的,调用 函数名()单独存在 方法:在对象里面调用的时候,对象.方法()
(2)利用new Object创建对象
//创建的第二中方式:利用new Object创建对象
var dogobj=new Object()//创建了一个空的对象
dogobj.uname="keke"//为对象追加新的属性
dogobj.age=5;
dogobj.eat=function(){
console.log("想吃饭了");
}
//(1)利用等号=赋值的方法 添加对象的属性和方法
//(2)每个属性和方法之间用分号结束
console.log(dogobj.uname)
dogobj.eat()
(3)利用构造函数创建对象
为什么需要创建构造函数:因为前面两种创建对象的方法一次只能创建一个对象,里面有很多的属性和方法是大量相同的,就只能复制,,因此我们可以利用函数的方法,重复这些相同的代码,我们就把这个函数称为 构造函数,这个函数里面封装的不是普通代码,而是对象,构造函数就是把我们对象里面的一些相同的属性和方法抽象出来封装到函数里面
//利用构造函数创建一个对象
//注意:构造函数首字母要大写,构造函数不需要return,就可以返回结果
function start(namess,age){//start是构造函数的名字
this.namess=namess;//this.属性=值
this.age=age;
//this.方法=function(){}
}
var ldh=new start("刘德华",27,"男")//调用函数返回的是一个对象,调用函数必须加new调用
var zxy=new start("张学友",27,"男")
var lm=new start("黎明",27,"男")
console.log(ldh.namess)
console.log(zxy.age)
console.log(ldh.namess)
- 构造函数和对象的区别
构造函数:如上案列:start()抽取了对象的公共部分,封装到了函数里面,他泛指一大类。(class)
创建对象:如new start()特指某一个,通过new关键字创建对象的过程,我们也称对象实例化。是一个具体的事物 - 利用构造函数创建对象中,new关键字的执行过程:四件事
(1)new构造函数可以在内存中,创建一个空的对象,(2).this就会指向刚才创建的空对象(3)执行构造函数里面的代码,个这个空对象添加属性和方法(4)返回这个新对象(所以构造函数里面不需要return) - 遍历对象用for in 循环
for… in语句用于对数组或者对象的属性进行循环操作
<script>
var obj ={
name :"pink老师",
age:18,
sex:"男"
}
//for in遍历对象的语法
// for(var 变量 in 对象){}
for( var k in obj){
console.log(k);//输出属性名
console.log(obj[k]);//输出对象的属性值
}
</script>