<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>JavaScript对象详解</title>
</head>
<script>
//JavaScript对象只有两种类型,Native类型(包括ECMA描述的内置对象数组,日期,和用户自定义对象),Host类型(主机环境如浏览器中提供开发者使用的,如window,dom)
//JavaScript将对象的属性当做数组管理,对象的属性=属性名+属性值(数组/对象/函数)
//创建对象的方法
//1
var myobj={};
myobj.name="lsf";
myobj.age=24;
//2
var exampleobj={"info":"information",
inner:{id:0,value:10},//属性名可以不加双引号
sayHello:function(name){
name=name || "lsf";//通过逻辑值设置默认值 为lsf
console.info("hello "+name);
}
}
//访问1
console.info(myobj.name);
//访问2
console.info(myobj['age']);console.info(myobj["age"]);
exampleobj.sayHello("kdd");
exampleobj["sayHello"]();//以数组的方式访问
//属性遍历,(属性当做数组管理)
for(var proName in exampleobj){
console.info(proName+" : "+exampleobj[proName]);
}
function displayPerson(person){
console.info(person.name || "lsf");
console.info(person.age || 0);
}
displayPerson({name:"wang",age:25});//用{}直接创建对
displayPerson({});//用{}直接创建对象象
console.info("-----");
//使用工厂函数创建对象
function personFactory(name,age,career){
var o=new Object();
o.name=name;
o.age=age;
o.career=career;
o.sayName=function(){
console.info(o.name || "no name");
}
return o;
}
person1=personFactory("lsf",24,"soft engineer");
person2=personFactory("zf",25,"stupit");
//使用构造函数创建对象
function Person(name,age){
this.name=name;
this.age=age;
console.info(this instanceof Person);
console.info(this instanceof arguments.callee);//callee放回正在执行的函数本身的引用,它是arguments的一个属性
}
var p1=new Person("john",19);//ture其实和工厂函数一样,内部会调用new返回对象,new 开辟了新区域
var p2= Person("lsf",24);//false 如果没有使用new关键字,则函数Peron内部this默认指向window,没有new则没有开辟
console.info(p2);//undefined
console.info(window.age);24
</script>
<body>
</body>
</html>
javascript基础之三(对象详解)
最新推荐文章于 2023-04-24 23:57:40 发布