美文网首页
前端JS面试手写函数

前端JS面试手写函数

作者: 杉虎 | 来源:发表于2020-11-27 16:05 被阅读0次

1.用一个柯里化函数实现累加

// 柯里化函数
function currying(fn,length) {
    var length = length || fn.length;
    return function(...arg) {
        if(arg.length >= length) {
            return fn(...arg);
        } else {
            return currying(fn.bind(null,...arg),length-arg.length);
        }
    }
}
function $add(a1,a2,a3,a4) {
    return a1 + a2 + a3 + a4;
}
var add = currying($add,4);
console.log(add(1,2,3,4));
console.log(add(1,2)(3,4));
console.log(add(1)(2)(3,4));
console.log(add(1)(2)(3)(4));

2.实现一个bind函数

//myBind函数
Function.prototype.myBind = function (argThis,...arg) {
    const _Fn = this;
    return function() {
        const args = [...arg,...arguments];
        return _Fn.apply(argThis,args);
    }
}

var name = 'Nick'
function sayName() {
    return this.name
}
var obj = {
    name: 'Lily'
}
console.log(sayName())
var sayNamenew = sayName.myBind(obj);
console.log(sayNamenew())

3.实现一个new函数

//myNew函数
function Dog(name) {
    this.name = name;
    this.bar = function() {
        console.log(`my name is ${this.name}`)
    }
    // return this
}

function myNew(fn,...arg) {
    // let _Fn = new Object();
    // _Fn.__proto__ = fn.prototype;
    let _Fn = Object.create(fn.prototype);
    let result = fn.apply(_Fn,arg);
    return typeof result === 'object' ? result : _Fn;
}

var teddy = myNew(Dog,'Teddy');
console.log(teddy.name)
teddy.bar();

相关文章

  • 前端JS面试手写函数

    1.用一个柯里化函数实现累加 2.实现一个bind函数 3.实现一个new函数

  • 2021年字节跳动暑期实习一面

    为什么选择前端 平时是怎么学习前端的 js的函数事件绑定只回答了addEventListener,然后面试官提醒说...

  • 2019年一些前端的面试题(含答案)2.0

    上一篇链接:2019年一些前端的面试题(含答案) 7、手写函数防抖和函数节流 函数节流 函数节流是让这个函数在间隔...

  • 前端相关大杂烩

    前端基础面试题(JS部分) 前端基础面试题(JS部分)学习 React.js 比你想象的要简单 原文地址:Lear...

  • JS_bind

    前言 bind、call、apply 三个改变指向函数,在JS面试中,经常问道。本文收录了 四种 手写bind的方...

  • JS基础学习记录1

    前端JS面试视频重要知识点: 1.原型规则: 1:所有引用类型(数组,对象,函数),都具有扩展性,null没有。...

  • 前端面试的难题和怪题

    前端面试的难题和怪题 前端面试三部曲 前端面试概念收集器 前端面试的经典题 前端面试的难题和怪题 函数 答案 Er...

  • web前端面试中拍摄的真实js面试题(真图)

    web前端面试中拍摄的真实js面试题(真图)

  • 面试知识体系整理

    中高级前端大厂面试秘籍 上篇中高级前端大厂面试秘籍 下篇 JS 原生面经从初级到高级

  • 手写JS面试题-10道(一)

    是什么 通常面试的时候,面试官会提一些JS手写的面试题,主要是为了考察面试者JS 基础的掌握程度。 以下是整理收集...

网友评论

      本文标题:前端JS面试手写函数

      本文链接:https://www.haomeiwen.com/subject/ybbxwktx.html