一、Object.create()
这个方法用于创建一个新对象。被创建的对象的__proto__
指向create函数第一个参数的原型对象prototype,在创建新对象时可以通过create函数第二个参数指定一些属性。
二、Object.hasOwnProperty()
- 对象是否有某一个属于自己的属性(不是在原型上的属性)
三、in/for in 操作符
判断某个属性是否在某个对象或者对象的原型上
四、instanceof
用于检测构造函数的pototype
,是否出现在某个实例对象的原型链
上
function createObject(o) {function Fn() {}Fn.prototype = oreturn new Fn()
}function inheritPrototype(SubType, SuperType) {// SubType.prototype = Object.create(SuperType.prototype)SubType.prototype = createObject(SuperType.prototype)Object.defineProperty(SubType.prototype, 'constructor', {enumerable: false,configurable: true,writable: true,value: SubType})
}function Person() {
}
function Student() {
}
inheritPrototype(Student, Person)
var stu = new Student()
// instanceof: stu的原型链上是否能找到Student
console.log(stu instanceof Student) // true
console.log(stu instanceof Person) // true
console.log(stu instanceof Object) // true
五、isPrototypeOf
用于检测某个对象
,是否出现在某个实例对象的原型链上