1.for ... in
是为遍历对象属性而构建的
示例1:
// 声明一个对象obj
// var obj = { a: 1, b: 2, c: 3 };
// // 遍历对象的属性 声明一个变量prop
// for (var prop in obj) {
// console.log("obj." + prop + " = " + obj[prop]);
// }
// 结果:a=1,b=2,c=3
示例2:
// 声明一个对象triangle
var triangle = { a: 1, b: 2, c: 3 };
// 声明一个构造函数ColoredTriangle
function ColoredTriangle() {
// this代表这个构造函数ColoredTriangle的实例
this.color = 'red';
}
// 把triangle对象挂载到这个构造函数的原型上
ColoredTriangle.prototype = triangle;
// new一个实例 obj
var obj = new ColoredTriangle();
// 遍历这个对象
for (var prop in obj) {
// 判断这个obj是否有指定属性prop---color
if (obj.hasOwnProperty(prop)) {
// 打印这个prop的属性名和属性值 colro='red'
console.log(`obj.${prop} = ${obj[prop]}`);
}
}
3.hasOwnProperty(属性名)是否具有指定属性
例子:
// 声明一个对象obj1
const object1 = {};
// 给obj添加一个属性property1 值为42
object1.property1 = 42;
console.log(object1.hasOwnProperty('property1'));
// true
console.log(object1.hasOwnProperty('toString'));
// false
console.log(object1.hasOwnProperty('hasOwnProperty'))
// false