时间:2021-05-26
首先了解枚举属性
一般利用for~in遍历
var a = [1,2,3];for(var i in a){console.log(a[i]);}orvar 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=3newDog.hasOwnProperty('name');//true;newDog.hasOwnProperty('price');//false;只显示自身属性
for(var prop in newDog){if(newDog.hasOwnProperty(prop )){console.log(prop+'='+newDog[prop]);}}newDog.propertyIsEnumerable('name');//truenewDog.propertyIsEnumerable('constructor');//false注意:内建属性和方法大部分是不可枚举的
任何来自原型链中的属性也是不可枚举的
如果propertyIsEnumerable()的调用是来自原型链上的某个对象,那么该对象中的属性是可枚举的
newDog.constructor.prototype.propertyIsEnumerable('price');//trueisPrototypeOf():每个对象都有,表示当前对象是否是另一个对象的原型
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(),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
hasOwnProperty方法返回一个布尔值,指出一个对象是否具有指定名称的属性。object.hasOwnProperty(proName)兼容WinIE5
JavaScript中isPrototypeOf函数方法是返回一个布尔值,指出对象是否存在于另一个对象的原型链中。使用方法:复制代码代码如下:object1.i
复制代码代码如下:/*propertyIsEnumerable()是用来检测属性是否属于某个对象的,如果检测到了,返回true,否则返回false.1.这个属性
hasOwnProperty()函数用于指示一个对象自身(不包括原型链)是否具有指定名称的属性。如果有,返回true,否则返回false。该方法属于Object
1.android中利用webview调用网页上的js代码。Android中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webvie