📁 手写

您所在的位置:网站首页 js手写instanceof 📁 手写

📁 手写

2023-03-25 23:59| 来源: 网络整理| 查看: 265

总览newinstanceofObject.create

总览 newinstanceOf

Object.create

new

语法: newInstance(Fn, …args)

功能: 创建 Fn 构造函数的实例对象

function myNew(Fn, ...args) { const obj = {};obj.__proto__ = Fn.prototype; const result = Fn.apply(obj, args)// 如果Fn返回的是一个对象类型, 那返回的就不再是obj, 而是Fn返回的对象 return (typeof result === 'object' && result != null) ? result : obj// 最后一句也可以 return result instanceof Object ? result : obj}

instanceof

语法: myInstanceOf(obj, Type)

功能: 判断 ob j是否是 Type 类型的实例

实现: Type 的原型对象是否是 obj 的原型链上的某个对象, 如果是返回 true, 否则返回 false

function myInstanceOf(obj, Type) {let proto = Object.getPrototypeOf(obj)while(proto) { if (proto === Type.prototype) { return true } proto = Object.getPrototypeOf(proto)}return false}

Object.create

Object.create() 方法创建一个新对象,使用现有的对象来提供新创建的对象的proto

Object.create = function (proto) { function F() { } F.prototype = proto; return new F(); };

使用:

// 子类继承父类的原型属性 Worker.prototype = Object.create(Person.prototype) Worker.prototype.constructor = Worker


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3