“对象”长什么样
JavaScript对象中包含一系列属性,这些属性是无序的。每个属性都有一个字符串key和对应的value。
验证:
const obj = {};
obj[1] = 0;
obj["1"] = 10;
console.log(obj)//{ '1': 10 }
创建对象的方式
字面量的形式创建
const obj = {
a:1,
b:2,
}
创建对象new/原型链
function Func(){};
Func.prototype.z = 10;
const obj = new Func();
obj.x = 1;
obj.y = 2;
"z" in obj;//true 如果指定的属性在指定的对象或其原型链中,则in 运算符返回true。
obj.hasOwnProperty("z");//false hasOwnProperty方法确定JavaScript对象是否具有指定的自己的属性。
obj.z = 1000;
obj.hasOwnProperty("z");//true
console.log(Func.prototype.z);//still 10
//obj可以很好的继承原型链上的属性,反过来新增的z属性并不会影响到obj原型链上的z,这样就很好的实现了一些属性的继承。
对象创建Object.create({});
var obj = Object.create({x:1});
obj.x;//1
typeof obj.toString;//function
obj.hasOwnProperty("x");//false x这个属性是obj原型链上的属性。
var obj = Object.create(null);
typeof obj.toString;//undefined
对象属性的读写
const obj = {x:1,y:2};
obj.x;//1
obj["x"];//1
const obj = {x1:1,x2:2};
var i=1,n=2;
for(;i<=n;i++){
console.log(obj["x"+1]);//1,2
}
//in操作符
for(p in obj){
console.log(obj[p]);//1,2
}
对象属性读写异常处理
const obj = {x:{y:2}};
const a = obj.z;
const b = obj&&obj.x&&obj.x.y;//判断obj是否存在存在的话再去判断obj.x是否存在,再判断obj.y是否存在,存在的话将obj.y的值赋予给b;
console.log(a,b);//undefined 2
对象的删除操作
const obj = {x:1,y:2};
delete obj["x"];//true
console.log(obj["x"]);//undefined
delete obj["x"];//true 如果删除一个不存在的属性仍然会返回true
//注意只有隐式创建的全局变量才可以被删除.
对象属性的检测
in操作符检测
既会检测对象本身创建的也会检测对象原型链上的属性。
//检测范围:在对象本身以及对象原型链上检测
var obj = new Object;
obj.x = 1;
"x" in obj;//true属于对象本身的属性
"y" in obj;//false既不是对象本身的又不是对象原型链上的
"toString" in obj;//true对象原型链上的
hasOwnProperty方法检测
该方法只检测对象本身创建的属性,并不检测对象原型链上的属性。
var obj = new Object;
obj.x = 1;
obj.hasOwnProperty("x");//true
obj.hasOwnProperty("toString");//false
枚举对象的属性操作
不过滤原型链上的属性
var obj = {x:1,y:2,z:3};
for(e in obj){
console.log(onj[e])
}
//1,2,3
过滤原型链上的属性
var o = {x:1,y:2,z:3};
var obj = Object.create(o);
obj.a = "只有这个属性被枚举";
for(e in obj){
if(obj.hasOwnProperty(e)){
console.log(onj[e]);// "只有这个属性被枚举"
}
}
/**********************************/
for(e in obj){
console.log(onj[e]);//1,2,3, "只有这个属性被枚举"
}
时间太晚了,还有很多没有总结出来,剩余的留给明天懒惰的自己吧!!本人也是初学者,如有不当之处还请大神留言指正,感激不尽!如果帮到了你,还请点赞关注我吧!

被折叠的 条评论
为什么被折叠?



