for In的使用:
for in 这种循环一般是用来遍历对象的,它可以循环出对象的属性,其中包括原型中的属性。如果仅想遍历自身的属性,可以使用hasOwnProperty方法来判断。
另外obj1定义如下:我是创建了一个字面量对象obj1,然后将obj1的原型指针让它指向函数Book,Book函数的原型中包含一个属性price。这样做的目的是测试Object实例的对象如何改变它的原型指针,使它指向一个新的原型。从而继承新原型的属性和方法。当然你可以简单点。
var obj1 = { title : 'tom and jetty', author : 'pecool' } function Book(){} Book.prototype.price = 23; obj1.__proto__ = Book.prototype;
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 //执行结果
Object.keys()方法的使用:
Object.keys(obj1)
["title", "author"]