JavaScript中的对象—如何自定义对象
一 JavaScript对象
JavaScript对象是基本数据类型之一,是复合类型;
JavaScript中几乎所有事物都是做对象;
JavaScript的对象是拥有属性和方法的数据。
1 . JavaScript中的对象可以简单理解成“名称:值”对(name:value):
(1)JavaScript中的对象与这些概念类似
a:Python中的字典;
b:Perl和Ruby中的散列(哈希)
c:c/c++中的散列表
d:Java中的HashMap
e: PHP中的关联数组
(2)名称【“名称”部分是一个JavaScript字符串】
注意:可以将属性名括在引号之间
a:这三种形式一样:
var obj={prop:1}
var obj={“prop”:1}
var obj={‘prop’:1}
b:必须放到引号之间
A.如果属性名是JavaScript的保留字之一
B.如果属性名中包含特殊字符(除字母,数字,下划线以外的字符)
C.如果属性名以数字开头
D.在ECMScript5中,保留字可以用作不带引号的属性名,但对于ECMScript3中必须用括号括起来
E.在ECMScript5中对象直接量中的最后一个属性后的逗号将被忽略,在ECMScript3的大部分实现中也可以忽略这个逗号,但在IE中报错。
(3)值【“值”部分可以是任何JavaScript的数据类型–包括对象】
二 JavaScript中的对象分类
1.内建对象
2 自定义对象
(1)通过var obj={}【对象字面量(object literal)法】
(2)通过var obj=new Object()创建
(3)通过构造函数创建对象
a:function person(){}
b:var person=function(){}
c:构造器属性(constructor property)
d:通过instanceof操作符可以检测一个对象是否由某个指定的构造器函数创建的
e:注意:
使用的时候通过new操作符得到对象【var person1=new Person()】
用构造器创建对象的时候可以接收参数
一般函数构造函数的首字母最好大写,区别其他的一般函数
(4)通过Object.create创建对象
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script type="text/javascript">
//通过对象字面量的形式创建对象
var obj={};//没有任何属性的对象
//alert(typeof obj);
var obj1={x:1,y:2,z:3};
var obj2={
'x':1,
"y":2,
username:'king',
'for':'javascriptg关键字必须放到引号之间',
'first-name':'queen',
married:true,
test:null,
test1:undefined ,
salary:12.3,
person:{
username:'king',
age:12,
addr:'北京'
}
};
//通过new Object()创建对象
var obj3=new Object ();//创建一个空对象,{}
var arr=new Array();//空数组,[]
var date=new Date();//日期时间对象
var reg=new RegExp('JS');//创建正则对象
var obj4=new Test();
function Test1(num1,num2){
this.n1=num1;
this.n2=num2;
}
var obj5=new Test1(5,6);
//alert(typeof obj5);
//alert(obj5 instanceof Test1);
//通过Object.create()创建对象
var obj6=Object.create ({x:1});
var obj7=Object.create (null);
//创建一个普通的空对象
var obj8=Object.create (Object.prototype);
</script>
</body>
</html>