var obj1 = { title : 'tom and jetty', author : 'pecool' } function Book(){} Book.prototype.price = 23; obj1.__proto__ = Book.prototype;
1、带原型属性的循环--for In的使用:
for in 这种循环一般是用来遍历对象的,它可以循环出对象的属性,其中包括原型中的属性。如果仅想遍历自身的属性,可以使用hasOwnProperty方法来判断。
另外obj1定义如下:我是创建了一个字面量对象obj1,然后将obj1的原型指针让它指向函数Book,Book函数的原型中包含一个属性price。这样做的目的是测试Object实例的对象如何改变它的原型指针,使它指向一个新的原型。从而继承新原型的属性和方法。当然你可以简单点。
for(let item in obj1){ if(obj1.hasOwnProperty(item)){ console.log('selfProperty:'+item) }else{ console.log('__proto__Property:'+item) } } selfProperty:title //执行结果 selfProperty:author //执行结果 __proto__Property:price //执行结果
2、只循环javascript对象自身Key属性--Object.keys()方法的使用:
var key_elements = document.forms[0].elements;
Object.keys(key_elements);
3、只循环javascript对象自身value属性--Object.values()方法的使用:
var key_elements = document.forms[0].elements; Object.values(key_elements);
4、对普通json结构数据循环
for(var one in jsonObject){ //one:表示key //jsonObject[one]:表示value }