JavaScript检测实例属性, 原型属性
作者:hebedich 时间:2024-04-18 09:40:54
0.前提
JavaScript对象的属性分为两种存在形态. 一种是存在实例中, 另一是存在原型对象中.
根据上述, 检测属性的时候会出现4种情况
既不存在实例中, 也不存在原型对象中
存在实例中, 不存在原型对象中
不存在实例中, 存在原型对象中
既存在实例中, 也存在原型对象中
1.hasOwnPrototype()
hasOwnPrototype()接受一个字符串格式的属性名称, 如果实例本身存在该属性(情况2/情况4), 返回true. 否则, 返回false(情况1/情况3).
functino Person() {}
Person.prototype.name = 'apple';
var person1 = new Person();
var person2 = new Person();
person1.name = 'banana';
console.log(person1.hasOwnPrototype(name)); //true
console.log(person2.hasOwnPrototype(name)); //false
2.in操作符
in操作符无论属性是存在实例本身中, 还是原型对象中, 就会返回true(情况2/情况3/情况4); 否则, 返回false(情况1).
console.log('name' in person1); //true
console.log('name' in person2); //true
3.检测存在原型的属性
结合in操作符和hasOwnProperty()就可以自定义函数来检测原型中是否存在给定的属性.
function hasPrototypeProperty(object, name) {
return !object.hasOwnPrototype(name) && (name in object);
}
console.log(hasPrototypeProperty(person1, 'name')); //false
console.log(hasPrototypeProperty(person2, 'name')); //true
原型中存在给定属性, 返回true(情况3). 否则返回false(情况1/情况2/情况4).
标签:JavaScript,实例属性,原型属性
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
使用cmd命令行窗口操作SqlServer的方法
2012-07-21 14:24:06
python中常用的九种预处理方法分享
2022-06-27 17:50:23
![](https://img.aspxhome.com/file/2023/6/133746_0s.png)
vertical-align表单元素垂直对齐
2009-07-27 13:02:00
教你如何编写Vue.js的单元测试的方法
2024-04-26 17:38:09
PL/SQL Number数字类型函数
2010-07-16 13:09:00
CentOS环境下安装Redis3.0及phpredis扩展测试示例
2023-11-21 18:20:05
![](https://img.aspxhome.com/file/2023/1/110141_0s.png)
五个常用MySQL图形化管理工具
2012-01-05 18:49:16
Python面向对象程序设计构造函数和析构函数用法分析
2021-12-12 07:01:48
Python利用Beautiful Soup模块修改内容方法示例
2023-09-03 10:29:51
CSS阴影详解
2009-12-04 18:31:00
![](https://img.aspxhome.com/file/UploadPic/200912/4/textshadow1-78s.jpg)
ASP Session对象的集合以及属性方法事件
2009-02-02 09:26:00
全面解析Bootstrap中tooltip、popover的使用方法
2024-05-21 10:14:19
![](https://img.aspxhome.com/file/2023/9/125959_0s.jpg)
python发送伪造的arp请求
2022-11-24 00:47:35
ie8下ewebeditor无效的解决办法
2010-02-28 10:31:00
python中pandas对多列进行分组统计的实现
2022-06-25 03:50:03
![](https://img.aspxhome.com/file/2023/8/93508_0s.png)
python3解析库pyquery的深入讲解
2022-01-11 23:14:48
Python filter()及reduce()函数使用方法解析
2022-09-05 07:01:59
Python利用Scrapy框架爬取豆瓣电影示例
2022-04-30 15:16:17
![](https://img.aspxhome.com/file/2023/3/86253_0s.png)
Pycharm最全报错的原因与解决方法总结(推荐!)
2023-10-26 04:20:03
![](https://img.aspxhome.com/file/2023/4/79534_0s.jpg)
Python环境管理virtualenv&virtualenvwrapper的配置详解
2021-09-28 01:08:08
![](https://img.aspxhome.com/file/2023/4/105704_0s.png)