对象的枚举例题集

for in基本使用:

// 遍历对象
var obj = {
	a : 1,
	b : 2,
	c : 3
}
for(var prop in obj){
	console.log(typeof prop);//string
	console.log(obj[prop]);
	//prop本身是string类型,再加''会变成属性名,即成了找obj.prop:undefined
}

hasOwnProperty()

var obj = {
	a : 1,
	b : 2,
	__proto__:{
		lastName : 'li'
	}
}
for(var prop in obj){
	//每个对象都有hasOwnProperty([属性名字符串]),
	//若是对象自身属性返回true,否则false
	if(obj.hasOwnProperty(prop)){
		console.log(obj[prop]);
	}
}
var obj = {
	a : 1,
	b : 2,
	__proto__:{
		lastName : 'li'
	}
}
Object.prototype.abc = '123';
for(var prop in obj){
	//但凡是自设的属性,无论在哪都一定会找到
	//但凡是系统的属性,无论在哪都一定不会找到
	if(!obj.hasOwnProperty(prop)){//用的是!
		console.log(obj[prop]);
	}
}
//li
//123

in

// in和hasOwnproperty()相同点:都是用来查看字符串属性名是否属于对象
//in和hasOwnproperty()不同点:无论自设属性还是系统属性,都属于对象
//总结:in是用来查看该属性能否被对象调用?
//hasOwnproperty用来查看属性是否属于对象?
var obj = {
	a : 1,
	b : 2,
	__proto__:{
		lastName : 'li'
	}
}

在这里插入图片描述
instanceof

//instanceof用法与操作与In类似
// 对象A 是不是 B构造函数 构造出来的?
// 实际上是,看A对象的原型链上 有没有 B的原型
// A instanceof B
function Person(){}
var person = new Person();

在这里插入图片描述一个变量有可能是数组,也有可能是对象,如何区分?var a = []?{}
方法一:
在这里插入图片描述
方法二:
在这里插入图片描述
方法三:

前提:每个函数都重写了toString方法
问题:如何让数组调用toString()?call()改变this指向
首先:
Object.prototype.toString = function(){
第一步:识别this
第二步:返回相应的结果
}
其次:
Object.prototype.toString.call()
call()改变this指向,谁调用this返回谁
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值