我是靠谱客的博主 朴素身影,最近开发中收集的这篇文章主要介绍前端复习(Map,改变this指向(call,apply,bind))day4,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

        1. Map

                map常用到对数组内的元素进行修改

                1.1    力扣一百道热门题第一道

        

 解题思路:

        (1)最先想到的应该是两个for循环暴力求解将数组内元素挨个相加如果得到target则获取两个元素的下标

       (2)看了讨论区的解题思路,我看到了用target减去数组中的一个元素在查看数组中是否有得到的那个元素,这样我们就不用一个个试错,加快了运行时间,减少了消耗内存

        

/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 */
var twoSum = function(nums, target) {
    let map = new Map();  //创建一个map
    for(let i = 0; i<nums.length; i++){
        let a = target - nums[i] //定义一个变量a来储存target减去数组内的一个元素的结果
        if (map.has(a)){  //判断a是否有在map对象中
            return [map.get(a),i]
        }
        else{
            map.set(nums[i],i); // 将数组中的下标作为map的值 元素作为 键
            //(原因是 我们用到的map.has函数是通过查找对象的键来返回布尔值的)
        }
    }
    return []
};

        二,改变this指向(call,apply,bind)

        (1)call

                1,call可以调用函数,可以改变this指向

                2,call的第一个参数:要改变this指向的那个对象

                第二个参数:是要给调用的函数的参数(如果有多个参数就往后加)

        

let dog = {
        name : "wang",
         eat(foot){
            console.log("我喜欢吃"+foot)
        }
    }
    let cat = {
        name:"miao",

    }
    dog.eat.call(cat,"鱼") //我喜欢吃鱼

        (2)apply

        与call的区别:传参的方式不一样 apply是通过数组传参

 let dog = {
            name : "wang",
            eat(foot1,foot2){
                console.log("我喜欢吃"+foot1+foot2)
            }
        }
        let cat = {
            name:"miao",

        }
        dog.eat.apply(cat,["鱼","肉"]) //我喜欢吃鱼肉

        (3)bind

        他会将调用的函数赋值给另外一个函数

let dog = {
            name : "wang",
            eat(foot1,foot2){
                console.log("我喜欢吃"+foot1+foot2)
            }
        }
        let cat = {
            name:"miao",

        }
    let fun =  dog.eat.bind(cat,"鱼","肉")
    fun(); //我喜欢吃鱼肉

最后

以上就是朴素身影为你收集整理的前端复习(Map,改变this指向(call,apply,bind))day4的全部内容,希望文章能够帮你解决前端复习(Map,改变this指向(call,apply,bind))day4所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部