代码拉取完成,页面将自动刷新
同步操作将从 doocs/leetcode 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
请你编写一个函数,检查给定的值是否是给定类或超类的实例。
可以传递给函数的数据类型没有限制。例如,值或类可能是 undefined
。
示例 1:
输入:func = () => checkIfInstance(new Date(), Date) 输出:true 解释:根据定义,Date 构造函数返回的对象是 Date 的一个实例。
示例 2:
输入:func = () => { class Animal {}; class Dog extends Animal {}; return checkIfInstance(new Dog(), Animal); } 输出:true 解释: class Animal {}; class Dog extends Animal {}; checkIfInstanceOf(new Dog(), Animal); // true Dog 是 Animal 的子类。因此,Dog 对象同时是 Dog 和 Animal 的实例。
示例 3:
输入:func = () => checkIfInstance(Date, Date) 输出:false 解释:日期的构造函数在逻辑上不能是其自身的实例。
示例 4:
输入:func = () => checkIfInstance(5, Number) 输出:true 解释:5 是一个 Number。注意,"instanceof" 关键字将返回 false。
function checkIfInstanceOf(obj: any, classFunction: any): boolean {
if (classFunction === null || classFunction === undefined) {
return false;
}
while (obj !== null && obj !== undefined) {
const proto = Object.getPrototypeOf(obj);
if (proto === classFunction.prototype) {
return true;
}
obj = proto;
}
return false;
}
/**
* checkIfInstanceOf(new Date(), Date); // true
*/
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。