ICode9

精准搜索请尝试: 精确搜索
  • bind和apply以及call函数使用2022-02-05 11:34:03

    这三个函数都是定义在函数原型对象上的方法,其主要的用途是改变this的指向,并且调用函数,但是bind会返回一个改变bind后的函数。下面我们将详细聊一下三个函数的作用,以及其内部实现。 一、call和apply (1)、传入参数不同 call函数可以传入的参数没有限制,第一个参数为this指向的

  • JS中的原型和原型链(图解)2022-02-04 09:03:51

    JS中的原型和原型链 讲原型的时候,我们应该先要记住以下几个要点,这几个要点是理解原型的关键: 1、所有的引用类型(数组、函数、对象)可以自由扩展属性(除null以外)。 2、所有的引用类型都有一个_ _ proto_ _属性(也叫隐式原型,它是一个普通的对象)。 3、所有的函数都有一个prototype

  • LeetCode Daily 222022-02-03 23:02:00

    2022-2-3 T.1414 和为 K 的最少斐波那契数列   题目描述: 给你数字 k ,请你返回和为 k 的斐波那契数字的最少数目,其中,每个斐波那契数字都可以被使用多次。 斐波那契数字定义为: F1 = 1 F2 = 1 Fn = Fn-1 + Fn-2 , 其中 n > 2 。 数据保证对于给定的 k ,一定能找到可行解。  

  • JAVA练习76-和为 K 的最少斐波那契数字数目2022-02-03 21:33:40

    给你数字 k ,请你返回和为 k 的斐波那契数字的最少数目,其中,每个斐波那契数字都可以被使用多次。 斐波那契数字定义为: F1 = 1F2 = 1Fn = Fn-1 + Fn-2 , 其中 n > 2 。 数据保证对于给定的 k ,一定能找到可行解。 示例 1: 输入:k = 7 输出:2  解释:斐波那契数字为:1,1,2,3,5,8,13,…… 对于 k =

  • JS设计模式-发布订阅模式2022-02-03 17:02:18

    JS设计模式-发布订阅模式 1.什么是发布订阅模式 "一对多的关系" btn.addEventListener('click',fn1) btn.addEventListener('click',fn2) btn.addEventListener('click',fn3) 当初发点击事件时,上述绑定的三个函数都将执行 2. var salesOffice = {} salesOffice.clientList = {} s

  • Rust中mut, &, &mut的区别2022-02-03 13:32:46

    资源:内存区块。不同的内存区块位置和大小就是不同的资源。 strlet a = "xxx".to_string();  含义:a绑定到字符串资源A上,拥有资源A的所有权 let mut a = "xxx".to_string(); 含义:a绑定到字符串资源A上,拥有资源A的所有权,同时a还可绑定到新的资源上面去(更新绑定的能力,但新旧资源类

  • 技法3-2:当函数做为参数时的技巧2022-02-02 20:04:28

    我们之前在Python技法3: 匿名函数、回调函数、高阶函数(链接:https://www.cnblogs.com/orion-orion/p/15427594.html) 中提到,可以通过lambda表达式来为函数设置默认参数,从而修改函数的参数个数: import math def distance(p1, p2): x1, y1 = p1 x2, y2 = p2 return mat

  • swift5.1学习-7.闭包2022-02-02 19:58:21

    1.闭包表达式(Closure Expression) 在Swift中,可以通过func定义一个函数,也可以通过闭包表达式定义一个函数 格式: { (参数列表) -> 返回值类型 in 函数体代码 } 函数 func sum(_ v1: Int, _ v2: Int) -> Int { v1 + v2 } var fn = { (v1: Int, v2: Int) -> Int in

  • 防抖和节流2022-02-01 18:00:59

    JS经典题目 防抖 1.目的 函数节流(throttle)与 函数防抖(debounce)都是为了限制函数的执行频次,以优化函数触发频率过高导致的响应速度跟不上触发频率,出现延迟,假死或卡顿的现象。 2.知识点 函数闭包,this指向,arguments参数,apply改变this指向 3.完整代码 <body> <input type="tex

  • 递归求解斐波那契数列2022-02-01 14:02:31

    前言 代码 #include <iostream> using namespace std; int Fibonacci(int n); int main() { int Result = Fibonacci(10); cout << "输出结果: Result = "<< Result << endl; getchar(); return 0; } int Fibonacci(int n) { int Fn;

  • hhkb快捷键备忘2022-01-31 18:33:51

    关于连接 切换连接方式: fn+ctrl+0 有线fn+ctrl+1~4 蓝牙设备 蓝牙配对信息注册: fn+q 进入等待配对模式fn+ctrl+1~4 将即将要配对的设备存放到 1~4 位置。 删除所有配对信息: fn+q 进入等待配对模式fn+z+delete 删除个别配对信息: fn+q 进入等待配对模式fn+ctrl+delete+1~4 配对

  • Rust中的方法2022-01-31 13:03:35

    使用 fn 关键字声明 方法 (与 函数 相似)。 方法与函数的区别是:方法总是被定义在某个结构体(或者枚举类型、trait对象)的上下文中,并且它们的第一个参数永远是 self ,用于指代调用该方法的结构体实例。 定义方法的格式: impl 结构体名 { 方法 } 示例程序: #[derive(Debug)] struct Us

  • Rust-条件编译2022-01-30 16:00:48

    #[cfg] #[cfg]允许我们基于一个传递给编译器的标记编译代码。它有两种形式: #[cfg(foo)] fn foo(){ } #[cfg(bar="baz")] fn bar(){ } 它还有一些帮助选项: #[cfg(any(unix,target_pointer_width = "32"))] pub fn foo(){ } #[cfg(all(unix,windows))] pub fn bar(){ } #[cfg(

  • 学习TypeScript22(实战TS编写发布订阅模式)2022-01-28 17:04:20

    概述 什么是发布订阅模式,其实小伙伴已经用到了发布订阅模式例如addEventListener,Vue evnetBus 都属于发布订阅模式 简单来说就是 你要和 大傻 二傻 三傻打球,大傻带球,二傻带水,三傻带球衣。全都准备完成后开始打球。 思维导图 首先 需要定义三个角色 发布者 订阅者 调度者 具体

  • JS的作用域及作用域链2022-01-28 14:33:06

    JS的作用域及作用域链 什么是作用域呢? 在 Javascript 中,作用域分为 全局作用域 和 函数作用域 全局作用域:代码在程序任何地方都能访问,window对象的内置属性都属于全局作用域 函数作用域:在固定的代码片段才能被访问 作用域有上下级关系,上下级关系的确定就看函数是在哪个作用

  • js中删除事件removeEventListener的使用2022-01-27 09:59:55

    案例1: 该点击按钮只允许点击一次弹出对话框  传统方法是使用onclick 然后再点击函数里设置btn按钮为null即可 使用removeEventListener删除事件 fn代表的是调用下面的函数 这里调用函数不用加括号 删除事件不能写在监听事件里 所以把函数放在了外面 <body> <button>删除事

  • Rust引用与借用2022-01-26 22:34:18

    & 代表引用语义,它允许你在不获取变量的所有权的情况下使用值。 借用(borrowing):用过 引用 传递参数给函数的过程。 引用默认是不可变的。 示例程序: fn main() { let s = String::from("yuyoubei"); let len = get_len(&s); println!("len = {}", len); // 输出 len =

  • call-apply-bind2022-01-25 21:05:09

    Function.prototype.myCall = function(ctx){ if(typeof this !== 'function'){ throw new TypeError('myCall只能由函数调用') } ctx = ctx || window let args = [...arguments].slice(1) let rst = null ctx.fn = this

  • js 实现call2022-01-25 13:02:29

    手写call /** * 实现call * @param {*} context * fn.call(target,...args) * 让fn中的this指向target * 思路是函数默认指向调用者,在目标对象上挂载fn,执行的时候fn中的this默认指向目标对象, 执行完拿到结果并删除这个挂载属性即可 */ Function.prototype._call = function

  • js 实现apply2022-01-25 13:01:42

    手写apply /** * Function.apply(this: Function, thisArg: any, argArray?: any): any * @param {*} context */ Function.prototype._apply = function(context){ if(typeof this !== 'function'){ throw 'Error' } context = co

  • Rust使用for循环遍历集合中的每个元素2022-01-23 18:33:35

    可以使用 for 循环来遍历集合中的每个元素,例如: use std::io; fn main() { let a = [1, 3, 5, 7, 6, 4, 2]; for ele in a.iter() { println!("ele = {}", ele); } } 我们可以配合标准库中的 Range 来实现遍历一个范围内的所有数。 示例程序: fn main() {

  • Java-蓝桥杯算法Fibonacci ,字母图形,01字串2022-01-22 19:35:27

    Java-蓝桥杯算法Fibonacci,字符图形,01字串 Fibonacci题目个人对该题目的理解代码实现 字符图形题目个人对该题目的理解代码实现 01字符串题目个人对题目的理解代码 Fibonacci 题目 问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,

  • Rust中的变量隐藏2022-01-21 19:34:39

    示例程序: fn main() { let x = 1; let x = x + 1; let x = x + 2; println!("x = {}", x); // 输出 x = 4 } Rust中的变量隐藏(shadow):重复定义一个同名变量会覆盖掉之前定义的变量。 隐藏机制可以在修改变量的值得基础上,保持变量的不可变性。 相比可变变量,隐

  • 【青训营】JavaScript温故而知新2022-01-21 10:02:35

    【青训营】JavaScript温故而知新 参加字节跳动的青训营时写的笔记。这部分是月影老师讲的课。 1. 各司其责 HTML/CSS/JS各司其责 避免不必要的直接使用JS操作样式(element.style.color=“red”) 使用class来表示状态 纯展示类交互寻求零JS方案(checkbox的checked和label,

  • 防抖与节流2022-01-19 22:02:38

    防抖 理解带参数的时候需要将参数也进行包装,在加工为防抖函数的时候,我们返回的就是一个函数。此函数我们可能传入参数,而这个参数我们是想作为不加工之前函数的参数,所以我们需要使用...arguments配置好这个参数。所以在调用fn时我们使用.call将其的this绑定到fn,并且将参数通

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有