javascript对象的相关知识

obj.属性名的实质

例如:var obj = {
					name : jack;
					}
	 这里的obj.name = obj['name']
	 实质上在obj.name在经过编译器审查的时候就会执行如上操作
	 还有利用字符串连接的变异操作obj['name' + num]

对象遍历

for(var prop in obj){
					console.log(prop);
					}
遍历出属性名
for(var prop in obj){
					console.log(obj.prop);
					}
遍历出undefined 因为obj.prop 被当成某一个obj属性了
for(var prop in obj){
					console.log(obj[prop]);
					}
遍历出对象
该方法会连同拿出原型属性都拿出来,但是当编译器寻找到原型链顶端就会终止这一过程,即不能拿出object.prototype
for(var prop in obj){
			if(! obj.hasOwnProperty(prop)){
					console.log(obj[prop]);
					}
					}
hasOwnProperty()针对是否属于自身属性做判断并返回布尔值
上述进化版遍历能实现只把一个对象自己的属性遍历出来

属性一定是字符串形式,否则会被当成对象

in操作符 : “属性名” in 对象

返回布尔值,判断对象能否操作该属性

A instanceof B

判断B是否是A的构造函数构造而出
看A对象的原型链上有无B的原型

判断对象/数组

  1. 通过constructor
  2. instanceof
  3. Object.prototype.toString.call()
发布了81 篇原创文章 · 获赞 3 · 访问量 1006

猜你喜欢

转载自blog.csdn.net/qq_43618136/article/details/104090708