链式调用,对象深入,this,caller与callee

本文深入探讨了JavaScript中instanceof运算符的工作原理,通过实例展示了如何检查对象是否为特定构造函数的实例。此外,还提供了一个自定义的typeOf方法,用于更精确地确定变量的数据类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

instanceof 运算符用来检测 constructor.prototype 是否存在于参数 object 的原型链

instanceof

function Car(){}
var car  = new Car()

function Person(){}
var person = new Person()
console.log(car instanceof Car)     // true
console.log(car instanceof Object)  // true
console.log([] instanceof Array)    // true
console.log({} instanceof Object)   // true
复制代码
  • 封装typeOf 方法

      function myTypeOf(val) {
    	var toStr = Object.prototype.toString;
    	var type = typeof(val);
    	var res = {
    		'[object Array]': 'object array',
    		'[object Object]': 'object object',
    		'[object Number]': 'object number',
    		'[object String]': 'object string',
    		'[object Boolean]': 'object boolean'
    	}
    	if (type == null) {
    		return 'null';
    	} else if (type == 'object') {
    		var ret = toStr.call(val)
    		return res[ret];
    	} else {
    		return type;
    	}
      }
    复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值