JavaScript基础过关第四天
对象
-
创建对象的三种方法
- 法一:调用系统的构造函数创建对象
var 对象名称=new Object();//Object()就是系统的构造函数,该方法是在实例化一个对象 对象名称.name="...";//属性 对象名称.eat=function(){ .... }//方法
-
(类似)通过字面量的方式创建对象
var 对象名称={};//相当于var 对象名称=new Object(); 对象名称.name="...";//属性 对象名称.eat=function(){ .... }//方法 //优化后的写法 var 对象名称={ name:".."; age:..; eat:function(){ .... } }
缺点:只能一次性创建对象,如果想改变属性的值只能在源码修改
- 如何获取该变量(对象)是不是属于什么类型的
变量 instanceof 类型的名字
true是这种类型,false不是(类似于typeof)
-
法二:工厂模式创建对象
- 思路:将创建对象的过程封装成一个函数
- 好处:可以批量生成对象,并且指定属性或者方法
function createObject(name,age){ var obj=new Object(); obj.name=name; obj.age=age; obj.sayHi=function(){ console.log("我得名字是"+this.name+"我今年"+this.age); } return obj; } var per1=createObject("小芳",20); per1.sayHi();
-
法三:自定义构造函数创建对象
-
函数与构造函数的区别:构造函数的名字首字母大写
-
思路:自己写一个构造函数代替之前的系统构造函数Object();
-
function Person(name,age){//自定义构造函数创建对象
this.name=name;
this.age=age;
this.sayHi=function(){
console.log("我得名字是"+this.name+"我今年"+this.age);
}
}
var per1=new Person("jack",10);//利用自定义构造函数
console.log(per1.name);//jack
console.log(per1.age);//10
console.log(per1.sayHi());//我得名字是jack我今年10岁 -
JSON
- 格式
var json={
"name":"haha",
"age":"10",
"sex":"男"
}
-
遍历
通过for-in循环遍历json对象
for(var key in json){
console.log(key);//key="name"...
console.log(json[key]);//不能json.key,因为json对象中并没有key这个属性
}