手写js代码
DavidFFFFFF
这个作者很懒,什么都没留下…
展开
-
手写js ---- instanceof方法
递归方法:function instanceof_(left,right){ if(left.__proto__ === null){ return false; }else{ if(left.__proto__ === right.prototype){ return true; }else{ return instanceof_(left.__proto__,right);原创 2020-08-10 21:38:47 · 410 阅读 · 0 评论 -
手写Js代码 (3) ------ 函数柯里化
function multi() { var args = Array.prototype.slice.call(arguments); var fn = function(...arg) { return multi.apply(null,arg.concat(args)); } fn.toString = function() { return args.reduce(function(a, b) { return .原创 2020-08-10 21:26:29 · 530 阅读 · 0 评论 -
手写Js代码 (2) ------ call方法,apply方法,bind方法
// 实现思路,给target对象加symble类型的属性,指向thisFunction.prototype.myCall = function (target,...args){ // 判断如果targe为null或者undefined,将this指向window 或者Clobalthis target = target || globalThis; // 将this指针指向返回的对象 const prop = Symbol(); target[prop原创 2020-08-10 20:54:31 · 165 阅读 · 0 评论 -
手写Js代码 (1) ------ new方法
function _new(target,...args){ // 定义一个返回的对象 let obj = {}; if(target.prototype !== null){ // 对象的原型对象指向目标的构造函数 obj = Object.create(target.prototype); } // 将this指针指向返回的对象 const result = target.apply(obj,args); if((t原创 2020-08-10 20:06:39 · 226 阅读 · 0 评论