一.对象的基本概念
对象:有属性和方法的,特指的一类事物
在对象中同样可以创建对象
---即属性可以是任意的类型,包括object
二.对象的基本创建方式
1.工厂模式
2.自定义构造函数创建
3.字面量方式创建
工厂模式
工厂模式:批量创建对象;将创建对象的过程封装起来,成为一个创建对象的函数
----但无法识别对象的实例
function createObj(name,age){
var obj=new Object;
obj.name="name";
obj.age="age";
return obj;
}
var p1=createObj("张三",12);
构造函数方式
自定义构造函数:特征:首字母大写
作用:可以对创建的对象划分类,如Person类,Dag类
function Preson(name,age){
this.name=name;
this.age=age;
this.action=function(){
...
}
}
var person1=new Preson("小明,"12");
console.log(Person.name)
Person1.action();
console.log(person1 instance of Person); //true;
字面量创建对象
自面量创建对象
var obj={};
obj.name="次奥白";
obj.age=12;
obj.say=function(){
...
};
//var obj1={
name:"小黑",
age:12,
say:function(){
...
}
};
工厂模式和构造函数模式的区别
工厂模式和构造函数模式
---工厂模式:相当于创建一个函数封装起来,需要创建对象时调用此函数
---构造函数方式:相当于创建了一个“类”,其中并没有显现的创建对象类,因为其中使用
----this---来直接代替,直接将属性和方法赋值给this
----即解决了重复实例化的问题 ,又解决了对象识别的问题
获取对象的属性:
获取对象的属性:
1.eg:per1.name="小黑"
2. json格式创建对象时,只能通过---- per1["name"]---获取属性
eg: per1["name"]="小黑"; //对象["属性名"]=...
json:也是一个对象,数据是成对出现的
-----并没有length属性
eg:
json格式的数据:
var json={
"name":"小白",
" age":"12",
"sex":"true"
}
js遍历对象
var json={
"name":"小白",
" age":"12",
"sex":"true"
}
javaScript遍历对象
----for...in循环语句遍历对象的属性
----for(变量名 in 对象名){
...
console.log(变量名);
}
for(var key in json){
console.log(key);//name,age,sex;
console.log(json[key]);
}
格式:(变量 in 对象)......注意,,,
当“对象”为数组时,“变量”指的是数组的“索引”;
当“对象”为对象时,“变量”指的是对象的“属性”。
简单数据类型和复杂数据类型
简单数据类型:string boolean number
复杂数据类型:object
空类型:undefined null
值类型存储在栈当中(string,number,boolean),值类型传递的是值
引用类型object存储在堆上,地址在栈中存储,引用传类型递的是地址