JS对象创建数组
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 创建对象
//通过对象字面量创建的对象
var obj={};//没有任何属性的对象
// alert(typeof obj);
var obj1={num1:12,num2:34};//有两个属性
var obj2={x:obj1.num1,y:obj1.num2+3};
// alert(obj2.y);
var obj3={
"for":'JavaScript关键字',
"king smith":'this is king show time',
'test-attr':'特殊字符必须用放到引号之间',
person:{
username:'king',
age:12,
addr:'北京'
}
};
/*----------------------*/
//通过new创建对象
var obj4=new Object();//创建一个空对象,和{}一样
var arr=new Array();//创建一个空数组,和[]一样
var d=new Date();//创建一个表示当前时间的Date对象
var r=new RegExp('js')//创建一个可以进行模式匹配的RegExp对象
function Test(){
}
var func=new Test();
function Test1(num1,num2){
this.n1=num1;
this.n2=num2;
}
var func1=new Test1(2,3);
alert(func1.n2);
// alert(func instanceof Test);
// alert(typeof func);
// alert(typeof Test);
// alert(d.prototype);
/*----------------------*/
//通过Object.create()创建对象
var obj5=Object.create({x:1,y:2});
//可以通过传入参数null来创建一个没有原型的新对象,通过这种形式创建的
对象不会继承任何东西,甚至不包括基础方法,像toString()
var obj6=Object.create(null);//不继承任何属性和方法
//如果想创建一个普通的空对象(像{}或者new Object()创建的对象),需要传入Object.prototype
var obj7=Object.create(Object.prototype);
2 属性操作
//属性操作
var person={
username:'king',
age:12,
addr:'北京',
sex:'男'
};
//
alert(ername+'\n'+person['age']+'\n'+person['addr']+'\n'+person.se x);
person.age=23;
person['test']='this is a test';
delete ername;
// alert(ername);
// for(var attr in person){
// alert(attr);
// }
//有些时候只能使用[]来访问
//如果属性名是不确定的,就必须使用[],它允许我们在程序运行期间通过变量实现相关属性的动态存取
var key='age';
alert(person[key]);
3 检测属性
function foo(){};
foo.prototype.z=3;
var obj=new foo();
obj.x=1;
obj.y=2;
//通过in检测对象是否有某个属性
// alert('z' in obj);
// alert(obj.hasOwnProperty('z'));
obj.z=5;
// alert(obj.hasOwnProperty('z'));
// alert(foo.prototype.z);
// alert(obj.z);
obj.z=undefined;
// alert(obj.z);
delete obj.z;
// alert(obj.z);
delete foo.prototype.z;
// alert(obj.z);
//第一个参数是对象的原型,obj1没有x这个属性
var obj1=Object.create({x:1});
// alert(obj1.x);
// alert(obj1.hasOwnProperty('x'));
//属性访问错误
//如果属性不存在,则返回undefined
// alert(obj1.notExistsProperty);
//如果对象不存在,访问这个不存在对象的属性就会报错误
// alert(obj2.test);
//null和undefined都没有属性
var obj2={
test:{x:1,y:2}
};
obj3=obj2.test;
delete obj2.test;
alert(obj3.y);
4 in检测包含属性