fn

js 实现call和apply方法,超详细思路分析

北城以北 提交于 2020-01-05 00:36:52
壹 ❀ 引 我在 五种绑定策略彻底弄懂this 一文中,我们提到 call,apply,bind 属于显示绑定,这三个方法都能直接修改this指向。其中call与apply比较特殊,它们在修改this的同时还会直接执行方法,而bind只是返回一个修改完this的 boundFunction 并未执行,那么今天我们来讲讲如果通过JavaScript模拟实现call与apply方法。 贰 ❀ 关于call与apply1 贰 ✿ 壹 call与apply区别 除了都能改变this指向并执行函数,call与apply唯一区别在于参数不同,具体如下: var fn = function (arg1, arg2) { // do something }; fn.call(this, arg1, arg2); // 参数散列 fn.apply(this, [arg1, arg2]) // 参数使用数组包裹 call第一参数为this指向,后续散列参数均为函数调用所需形参,而在apply中这些参数被包裹在一个数组中。 贰 ✿ 贰 使用场景 call与apply在日常开发中非常实用,我们在此列举几个实用的例子。 检验数据类型: function type(obj) { var regexp = /\s(\w+)\]/; var result = regexp.exec(Object

Go语言调度器之创建main goroutine(13)

不想你离开。 提交于 2020-01-04 04:46:39
本文是《Go语言调度器源代码情景分析》系列的第13篇,也是第二章的第3小节。 上一节我们分析了调度器的初始化,这一节我们来看程序中的第一个goroutine是如何创建的。 创建main goroutine 接上一节,schedinit完成调度系统初始化后,返回到rt0_go函数中开始调用newproc() 创建一个新的goroutine用于执行mainPC所对应的runtime·main函数,看下面的代码: runtime/asm_amd64.s : 197 # create a new goroutine to start program MOVQ $runtime·mainPC(SB), AX# entry,mainPC是runtime.main # newproc的第二个参数入栈,也就是新的goroutine需要执行的函数 PUSHQ AX # AX = &funcval{runtime·main}, # newproc的第一个参数入栈,该参数表示runtime.main函数需要的参数大小,因为runtime.main没有参数,所以这里是0 PUSHQ $0 CALL runtime·newproc(SB) # 创建main goroutine POPQ AX POPQ AX # start this M CALL runtime·mstart(SB) # 主线程进入调度循环

jQuery效果--show([speed,[easing],[fn]])和hide([speed,[easing],[fn]])

偶尔善良 提交于 2020-01-03 14:56:50
hide([speed,[easing],[fn]]) 概述 隐藏显示的元素 这个就是 'hide( speed, [callback] )' 的无动画版。如果选择的元素是隐藏的,这个方法将不会改变任何东西 参数 [speed],[easing],[fn] speed:三种预定速度之一的字符串("slow","normal", or "fast")或表示动画时长的毫秒数值(如:1000) easing:(Optional) 用来指定切换效果,默认是"swing",可用参数"linear" fn : 在动画完成时执行的函数,每个元素执行一次 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="js/jquery-3.1.1.min.js" ></script> <script type="text/javascript"> $(function(){ $("button").click(function(){ $("p").eq(0).hide(); $("p:eq(1)").hide("slow"); $("p:eq(2)").hide("slow",function(){ $("button").css("color","

jQuery 样式处理

会有一股神秘感。 提交于 2020-01-03 14:54:12
jQuery.fn.css = function( name, value ) {   if ( arguments.length === 2 && value === undefined ) {     return this;   }   return jQuery.access( this, name, value, true, function( elem, name, value ) {    return value !== undefined ?jQuery.style( elem, name, value ) : jQuery.css( elem, name ); }); }; jQuery处理样式,如果参数长度为2,而vlaue值undefined,则无需赋值直接返回。否则返回jQuery.access操作结果 access: function( elems, key, value, exec, fn, pass ) { var length = elems.length; if ( typeof key === "object" ) { for ( var k in key ) { jQuery.access( elems, k, key[k], exec, fn, value); } return elems; } if ( value !==

详解准确率、精确率、召回率、F1值等评价指标的含义

↘锁芯ラ 提交于 2020-01-02 23:56:36
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-833878f763.css"> <div id="content_views" class="markdown_views prism-atom-one-dark"> <!-- flowchart 箭头图标 勿删 --> <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> <p>机器学习问题之中,通常需要建立模型来解决具体问题,但对于模型的好坏,也就是模型的泛化能力,如何进行评估呢?</p> 很简单,我们可以定一些评价指标,来度量模型的优劣。比如准确率、精确率、召回率、F1值、ROC、AUC等指标,但是你清楚这些指标的具体含义吗?下面我们一起来看看吧。 1.混淆矩阵 介绍各个指标之前,我们先来了解一下混淆矩阵。假如现在有一个二分类问题

cas 4.1.4单点登录实战

烈酒焚心 提交于 2020-01-01 05:14:26
使用工具 maven-3.3.9 cas-4.1.4 Tomcat-7.0.57-win-x64 cas-sample- Java -webapp 一、Hello cas 1、下载Tomcat,解压;修改其server.xml,增加对SSL支持(具体百度): [plain] view plain copy <Connector SSLEnabled="true" acceptCount="100" clientAuth="false" disableUploadTimeout="true" enableLookups="false" maxThreads="25" port="8443" keystoreFile="G:/work/xxx/tomcat.keystore" keystorePass="YOUR PASSWORD HERE" protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https" secure="true" sslProtocol="TLS" /> 1、从https://github.com/Jasig/cas/releases 下载cas-server对应的版本; 2、解压,使用maven命令mvn package对cas进行编译打包,这里可能会出现2个问题:   a.单元 测试

jquery常用方法

我们两清 提交于 2019-12-31 14:00:10
==========选择器 #id .class 类选择器 parent > child 在给定的父元素下匹配所有的子元素 :first 第一个元素 :eq(index) 匹配一个给定索引值的元素 :last 最后一个元素 [attribute=value] [attribute^=value] [attribute$=value] ===========效果 show([s,[e],[fn]])显示 hide([s,[e],[fn]])隐藏 fadeIn([s],[e],[fn])淡入 fadeOut([s],[e],[fn])淡出 ============属性 attr(name|pro|key,val|fn) 设置或返回被选元素的属性值 removeAttr(name) 从每一个匹配的元素中删除一个属性 addClass(class|fn) 为每个匹配的元素添加指定的类名 removeClass([class|fn]) 从所有匹配的元素中删除全部或者指定的类。 html([val|fn]) 取得第一个匹配元素的html内容 text([val|fn]) val([val|fn|arr]) =============文档处理 append(content|fn) 向每个匹配的元素内部追加内容 prepend(content|fn) 向每个匹配的元素内部前置内容。 after

RTT学习之启动流程

瘦欲@ 提交于 2019-12-31 04:34:58
总结RT-Thread的启动流程。 非运行时与运行时的image 文件分别是什么样的,请画下来。是谁将 RW 段中的 RW-data(初始化的全局变量) 搬运到 RAM 中? MDK环境下各种数据段存储的什么数据? 在RT-Thread启动时,关了中断,那么在什么时候开启的中断? 总结自动初始化原理。 总结BSP制作过程。 1 、 RT-Thread 启动流程 这部分启动代码,大致可以分为四个部分: (1) 初始化与系统相关的硬件; (2) 初始化系统内核对象,例如定时器、调度器、信号; (3) 创建 main 线程,在 main 线程中对各类模块依次进行初始化; (4) 初始化定时器线程、空闲线程,并启动调度器。 启动流程中蓝色部分是自动初始化的数据段,使用自动初始化宏导出的函数放置到相应的数据段,在启动流程中对函 数进行遍历初始化。 2 、加载时地址与运行时地址映射 image文件 STM32 在上电启动之后默认从 Flash 启动,启动之后会将 RW 段中的 RW-data(初始化的全局变量) 搬运到 RAM 中,但不会搬运 RO 段,即 CPU 的执行代码从 Flash 中读取,另外根据编译器给出的 ZI 地址和大小分配出 ZI 段,并 将这块 RAM 区域清零。 分散装载配置文件里会有配置,关于code的地址,有两个设置,一个是存储地址( 这个地址配置的是烧写器把代码

设备驱动

霸气de小男生 提交于 2019-12-30 22:38:37
1、Linux中的各种initcall总结 他们的区别仅仅是优先级不同。 如: core_initcall(fn) .initcall1.init postcore_initcall(fn) .initcall2.init arch_initcall(fn) .initcall3.init subsys_initcall(fn) .initcall4.init fs_initcall(fn) .initcall5.init device_initcall(fn) .initcall6.init late_initcall(fn) .initcall7.init 上述7个initcall函数,从上到下优先级依次降低。 其中,level=6的device_initcall就是我们常用的module_init。 1、arch_initcall,level=3,用在arch级的初始化,比如machine_init,如目录/arch/arm/mach-s3cxx下。 2、subsys_initcall,level=4,顾名思义,用在子系统中,比如IIC、SPI、USB、SD、PCI等子系统的初始化,如子系统的总线驱动中,目录/drivers/i2c/busses下。 3、module_init,即device_initcall,level=6,用在设备驱动中

Javascript return用法

为君一笑 提交于 2019-12-30 04:43:22
return 只能使用在函数中,函数外不能使用,无视任何内容直接跳出函数 break 用于switch或者循环语句中,跳出当前循环或者锚点循环,或者switch语句,循环外的语句继续执行 continue 仅跳出当前次循环,继续下一次循环,只能用于循环语句中 如果在函数最后一句没有返回值的情况下,尽量不要写return function fn ( ) { for ( var i = 0 ; i < 10 ; i ++ ) { if ( i === 5 ) return ; //return 替代break,跳出当前执行 } console . log ( "a" ) ; } fn ( ) ; return 可以允许函数返回一个值,仅一个(变量或者对象)。 function fn ( ) { return "a" ; } console . log ( fn ( ) ) ; //a 如果函数中没有return,就会返回undefined。 function fn ( ) { var a = 1 ; } console . log ( fn ( ) ) ; //undefined return返回多个值时,会将值存储在一个变量里面。 function fn ( w , h ) { return { perimeter : ( w + h ) * 2 , area : w * h } }