前端面试手撕题(1)-- Object.create ~ instanceof

85 阅读1分钟

手写 Object.create

Object.create() 方法用于创建一个新对象,使用现有的对象来作为新创建对象的原型(prototype)

思路:将传入的对象作为原型

function create(obj) {
    function F() { }
    F.prototype = obj
    return new F()
}

instanceof 方法

instanceof 运算符用于判断构造函数的 prototype 属性是否出现在对象的原型链中的任何位置。

function myInstanceof(left,right){
    let proto = Object.getPrototypeOf(left)
    prototype = right.prototype
    while(true) {
        if(!proto) return false
        if(proto === prototype) return true
        proto = Object.getPrototypeOf(proto)
    }
}

余下还有。