js检测属性是否在原型上

在单独使用时,in操作符会在可以通过对象访问指定属性时返回true,无论该属性是在实例上还是原型上。

hasOwnProperty()方法继承自Object,会在属性存在于调用他的对象实例上时返回true

基于上述特征我们可以设计一个函数用来检测某个属性是否存在于原型上
function hasPrototypeProperty(object, name) {
    return !object.hasOwnProperty(name) && (name in object);
}
测试下
function Person() { };
Person.prototype.name = 'hututu';//给原型上添加属性
let person1 = new Person();
console.log(hasPrototypeProperty(person1, 'name'));
image-20220723110938404

#我的秋招日记#
全部评论
代码块换行好怪异。。。
点赞 回复 分享
发布于 2022-07-23 11:15
2022年了,推荐用Object.hasOwn
点赞 回复 分享
发布于 2022-07-23 15:13

相关推荐

01-02 00:50
三峡大学 Java
程序员牛肉:这简历一出手就离失业不远了。 作为一家公司来讲,我如果要招日常实习生,那我对实习生最基本的要求就是要能干活,毕竟你就待三四个月,谁会留心培养你? 那么除了院校之外,最重要的就是项目和实习了。没有实习的话项目就好好搞。 但是你说你这个项目吧:课程作业管理系统和TMS运输管理系统。这两个基本就和闹着玩差不多。 你作为一个想要应聘Java开发实习生的人,对后端的理解还仅仅停留在:“使用mapper和sql映射”,“使用SQL进行多表调用”,“基于MySQL简历表结构”,“基于Spring boot完成CURD操作”这种玩具上......... 找不到后端实习的
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务