记录一次面试

本文记录了一次面试中涉及的关键点,包括JavaScript中实现对象继承的方法,深入理解bind、call和apply的异同,以及如何使用递归计算1到100的和。
摘要由CSDN通过智能技术生成

编写一个b继承a的方法

 function a(){
 	this.run = function(){
 		console.log("run方法");
 	}
 }
 function b(){
 };
 b.prototype = new a();
 var lb = new b();
 lb.run();

bind,call和apply的区别

1、相同点:

三个函数都会改变this的指向(调用这三个函数的函数内部的this)

2、不同点:

1)、bind会产生新的函数,(把对象和函数绑定死后,产生新的函数)

2)、call和apply不会产生新的函数,只是在调用时,绑定一下而已。

3)、call和apply的区别,第一个参数都是要绑定的this,apply第二个参数是数组(是函数的所有参数),call把apply的第二个参数单列出来

js递归计算1~100的和

 /* 方法一 */
        function sumFun(num,start){
            num+=start
            start++
            if(start>100){
                console.log(num);
                return num
            }else{
                sumFun(num,start)
            }
        }
        sumFun(0,1)
        
        /* 方法二 */
        function sumFun2(n){
            if(n===1)return 1;
            return sumFun2 (n-1)+n
        }
        let sum =sumFun2(100)
        console.log(sum);

        /* 方法三(非递归) */
        function add(start,end){
            var num = 0;
            for(var i = start;i<=end;i++){
                num = num+i
            }
            return num
        }
        let numData = add(1,100)
        console.log(numData );

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值