JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf()


Posted in Javascript onAugust 11, 2016

首先了解枚举属性

一般利用for~in遍历

var a = [1,2,3];
for(var i in a){
console.log(a[i]);
}
or
var o = {p1:1,p2:2};
for(var i in o){
console.log(i+'='+o[i]);
}//p1=1;p2=2;

<1>并不是所有的属性都会在for~in遍历中显示。比如(数组的)length属性和constructor属性。那些已经被显示的属性被称为可枚举的,可以通过各个对象所提供的propertyIsEnumerable()方法来判断其中有哪些可枚举的属性;

<2>原型链中的各个属性也会被显示出来,前提是它们可枚举的,hasOwnProperty()来判断一个属性是对象自身属性还是原型属性;

<3>对于所有的原型属性,propertyIsEnumerable()都会返回false,包括那些在for~in遍历中可枚举的属性。

js代码示例

function dog(name,color){
this.name = name;
this.color = color;
this.someMethod = function(){return 1;}
}
dog.prototype.price=100;
dog.prototype.rating=3;
var newDog = new dog("doggg","yellow");
for(var prop in newDog){
console.log(prop+'='+newDog[prop]);
}
//name=doggg
//color=yellow
//someMethod=function (){return 1;}
//price=100
//rating=3
newDog.hasOwnProperty('name');//true;
newDog.hasOwnProperty('price');//false;

只显示自身属性

for(var prop in newDog){
if(newDog.hasOwnProperty(prop )){
console.log(prop+'='+newDog[prop]);
}
}
newDog.propertyIsEnumerable('name');//true
newDog.propertyIsEnumerable('constructor');//false

注意:内建属性和方法大部分是不可枚举的

任何来自原型链中的属性也是不可枚举的

如果propertyIsEnumerable()的调用是来自原型链上的某个对象,那么该对象中的属性是可枚举的

newDog.constructor.prototype.propertyIsEnumerable('price');//true

isPrototypeOf():每个对象都有,表示当前对象是否是另一个对象的原型

js代码示例

var monkey = {
hair:true,
feeds:'bananas',
breathes:'air'
};
function Human(name){
this.name = name;
}
Human.prototype = monkey;
var george = new Human('George');
monkey.isPrototypeOf(george);//true

以上所述是小编给大家介绍的JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf(),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Javascript 文件夹选择框的两种解决方案
Jul 01 Javascript
解析javascript中鼠标滚轮事件
May 26 Javascript
jquery实现的用户注册表单提示操作效果代码分享
Aug 28 Javascript
纯JavaScript基于notie.js插件实现消息提示特效
Jan 18 Javascript
js时间比较 js计算时间差的简单实现方法
Aug 26 Javascript
基于javascript实现按圆形排列DIV元素(一)
Dec 02 Javascript
Node.js连接MongoDB数据库产生的问题
Feb 08 Javascript
微信小程序商品详情页的底部弹出框效果
Nov 16 Javascript
vue.js实现二级菜单效果
Oct 19 Javascript
使用JS来动态操作css的几种方法
Dec 18 Javascript
vue 单页应用和多页应用的优劣
Oct 22 Javascript
react-native 实现购物车滑动删除效果的示例代码
Jan 15 Javascript
基于js对象,操作属性、方法详解
Aug 11 #Javascript
JS中的hasOwnProperty()和isPrototypeOf()属性实例详解
Aug 11 #Javascript
Node.js中防止错误导致的进程阻塞的方法
Aug 11 #Javascript
浅谈js中对象的使用
Aug 11 #Javascript
js倒计时简单实现代码
Aug 11 #Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
Aug 11 #Javascript
vue分页组件table-pagebar使用实例解析
Nov 15 #Javascript
You might like
自己动手,丰衣足食 - 短波框形天线制作
2021/03/01 无线电
CI框架中通过hook的方式实现简单的权限控制
2015/01/07 PHP
php分页查询mysql结果的base64处理方法示例
2017/05/18 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
2020/04/07 PHP
Auntion-TableSort国人写的一个javascript表格排序的东西
2007/11/12 Javascript
Jquery 滑入滑出效果实现代码
2010/03/27 Javascript
JS验证控制输入中英文字节长度(input、textarea等)具体实例
2013/06/21 Javascript
JS Map 和 List 的简单实现代码
2013/07/08 Javascript
jquery+json实现数据列表分页示例代码
2013/11/15 Javascript
JavaScript中Number.MIN_VALUE属性的使用示例
2015/06/04 Javascript
详解JavaScript语言的基本语法要求
2015/11/20 Javascript
fullPage.js和CSS3实现全屏滚动效果
2017/05/05 Javascript
js获取css的各种样式并且设置他们的方法
2017/08/22 Javascript
React-Router如何进行页面权限管理的方法
2017/12/06 Javascript
详解使用jQuery.i18n.properties实现js国际化
2018/05/04 jQuery
vue组件name的作用小结
2018/05/23 Javascript
Node.js使用MongoDB的ObjectId作为查询条件的方法
2019/09/10 Javascript
深入理解javascript prototype的相关知识
2019/09/19 Javascript
微信小程序后端实现授权登录
2020/02/24 Javascript
微信小程序12行js代码自己写个滑块功能(推荐)
2020/07/15 Javascript
解决vue单页面 回退页面 keeplive 缓存问题
2020/07/22 Javascript
解析Python中的二进制位运算符
2015/05/13 Python
Python3中的列表,元组,字典,字符串相关知识小结
2017/11/10 Python
Python闭包之返回函数的函数用法示例
2018/01/27 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
2018/06/22 Python
python Flask 装饰器顺序问题解决
2018/08/08 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
2019/07/01 Python
解决python彩色螺旋线绘制引发的问题
2019/11/23 Python
基于Django signals 信号作用及用法详解
2020/03/28 Python
Python操作MySQL数据库的示例代码
2020/07/13 Python
Gloeilampgoedkoop荷兰:在线购买灯泡
2019/02/16 全球购物
升职自荐信
2013/11/28 职场文书
思想专业自荐信范文
2013/12/25 职场文书
幼儿园小班教育随笔
2015/08/14 职场文书
导游词之塘栖古镇
2019/12/04 职场文书