fn

js中的this指向

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-28 20:41:01
    this 通常指向调用者,即谁调用指向谁。 场景1: var a = 2; function fn() { console.log(this.a); } var obj = { a:123, fn:fn } fn(); // 2 this指向window obj.fn(); // 123 this指向obj 场景2:appy 与call 可改变this 指向(call与apply的第一个参数是this指向) var a = 2; function fn() { console.log(this.a); } var obj = { a:123, fn:fn } fn(); // 2 this指向window fn.call(obj); // 123 this指向obj fn.call(window); // 2 this指向window 场景3:箭头函数可以改变this指向,它的this绑定取决于外层 var a = 2; var fn = () => { console.log(this.a); } var obj = { a:123, fn:fn } fn(); // 2 this指向window obj.fn(); // 2 this指向window 而不是obj 场景4:事件中this指向事件对象元素 var ul = document.getElementById(

Rust中的测试用例的写法

浪尽此生 提交于 2019-11-28 20:29:59
有点类似 #[derive(Debug)] pub struct Rectangle { length: u32, width: u32, } impl Rectangle { pub fn can_hold(&self, other: &Rectangle) -> bool { self.length > other.length && self.width > other.width } } pub fn add_two(a: i32) -> i32 { a + 2 } pub fn greeting(name: &str) -> String { format!("Hello {}!", name) } pub struct Guess { value: i32, } impl Guess { pub fn new(value: i32) -> Guess { if value < 1 { panic!("Guess value must be great than or equal 1, got {}.", value); } else if value > 100 { panic!("Guess value must less than or equal to 100, got {}.", value); } Guess { value } } } #[cfg(test)

JavaScript的作用域和上下文

早过忘川 提交于 2019-11-28 19:30:04
作用域在函数定义时就已经确定了,执行上下文环境在函数调用时才确定。在全局作用域和函数作用域中会创建执行上下文环境(有闭包存在时,一个作用域存在两个上下文环境也是有的)。函数每调用一次都会产生一个新的执行上下文环境。但是处于活动状态的执行上下文环境只有一个,这是一个压栈出栈的过程。 执行上下文:函数每调用一次,都会产生一个新的执行上下文环境,因为不同的调用可能就有不同的参数。 let a = 10, fn, // 1、进入全局上下文环境 bar = function(x) { let b = 5 fn(x + b) // 3、进入fn函数上下文环境 } fn = function(y) { let c = 5 console.log(y + c) } bar(10) // 2、进入bar函数上下文环境 首先(数字1注释),执行代码之前,首先创建全局上下文环境(活动状态)如下: // 全局上下文环境 a: undefined fn: undefined bar: undefined this: window 之后开始执行代码,代码到10行之前,上下文环境中的变量都在执行过程中被赋值如下: // 全局上下文环境 a: 10 fn: function bar: function this: window 然后执行到bar(10) ,跳转到bar函数内部,执行函数体语句之前

常见函数封装(自用,随时更新)

狂风中的少年 提交于 2019-11-28 18:07:49
1.事件绑定与事件销毁 /* *说明:为了绑定事件的时候,不支持传递scope. *参数:绑定目标,绑定事件,绑定函数,scrop常用this *返回:函数(用于销毁绑定) */function connectEvent(target, event_name, fn, scope) { if (!target.on || typeof target.on != 'function') return; if (!fn || !event_name) return; const $fn = (e) => { fn.call(scope || null, e); } target.on(event_name, $fn); return $fn; } /* *说明:为了避免解绑定事件的时候,fn传递空导致解绑所有类型的事件封装 *参数:绑定目标,绑定事件,销毁上述函数 */function disconnectEvent(target, event_name, fn) { if (!target.un || typeof target.un != 'function') return; if (!fn || !event_name) return; target.un(event_name, fn); } 来源: https://www.cnblogs.com/lucio110/p

ES6

試著忘記壹切 提交于 2019-11-28 18:04:24
一、ES6概念   JavaScript是EMCAScript的一种,它只是一种标准,js一直被各个语言诟病,因为js的作用域让开发者困扰,也因为js在以前不算是面向对象的语言。ES6的出现,让js语言上了一个台阶。js在发展过程中,一直在完善自己的漏洞。ES6将弱类型的js提升为中弱类型。所以我们必须要学习ES6。 二、定义变量   1.let是定义变量的关键字,特点是:     1)不允许重复声明     2)不存在预解析     3)在大括号中声明的变量只能在大括号中使用,如if、for的大括号中声明的变量   2.const是声明常量的,特点:     1)不允许重复声明     2)不允许重新赋值(可以给对象中新增属性)     3)声明的时候必须赋值     4)不存在预解析     5)在大括号中声明的变量只能在大括号中使用,如if、for的大括号中声明的变量 三、箭头函数   es6中的箭头函数是用来简写函数的 例:let fn = function( ){ console.log( 111); } 使用箭头函数简写: let fn = ()=>{ console.log( 111);}   带参数的写法: let fn = function( a,b){ console.log(a+b); } 使用箭头函数改写: let fn = ( a,b)=>{

jQuery事件操作

允我心安 提交于 2019-11-28 16:28:41
bind绑定事件 1 bind(type,data,fn) 2 【参数描述】 3 type (String) : 事件类型 4 data (Object) : (可选) 作为event.data属性值传递给事件对象的额外数据对象 5 fn ( Function) : 绑定到每个匹配元素的事件上面的处理函数 6 // bind 参数都是选传的,接收参数e.data 7 $('button').bind('click',{'a':'b'},fn) 8 function fn(e) { 9 console.log(e.data) 10 console.log(e.data.a) 11 } 12 13 $('button').bind('click',fn) 14 function fn(e) { 15 console.log('wahaha') 16 } 17 ​ 18 // 简写的事件名称当做方法名 19 $('button').click({'a':'b'},fn) 20 function fn(e) { 21 console.log(e.data) 22 console.log(e.data.a) 23 } 24 25 $('button').click(fn) 26 function fn(e) { 27 console.log('wahaha') 28 } 解绑事件 $(选择器

注册事件的兼容性处理

懵懂的女人 提交于 2019-11-28 15:41:51
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <input type="button" value="按钮" id="btn"> <script> var btn = document.getElementById('btn'); addEventListener(btn, 'click', function () { alert('hello world'); }); addEventListener(btn, 'click', function () { alert('hello itheima'); }); // 处理注册事件的兼容性问题 // eventName, 不带on, click mouseover mouseout function addEventListener(element, eventName, fn) { // 判断当前浏览器是否支持addEventListener 方法 if (element.addEventListener) { element.addEventListener(eventName, fn); // 第三个参数 默认是false } else if (element

tf.contrib.layers.fully_connected参数笔记

余生颓废 提交于 2019-11-28 15:25:41
tf.contrib.layers.fully_connected 添加完全连接的图层。 tf.contrib.layers.fully_connected( inputs, num_outputs, activation_fn=tf.nn.relu, normalizer_fn=None, normalizer_params=None, weights_initializer=initializers.xavier_initializer(), weights_regularizer=None, biases_initializer=tf.zeros_initializer(), biases_regularizer=None, reuse=None, variables_collections=None, outputs_collections=None, trainable=True, scope=None) fully_connected 创建一个名为的变量 weights ,表示一个完全连接的权重矩阵,乘以它 inputs 产生一个 Tensor 隐藏单位。 如果 normalizer_fn 提供 了a (例如 batch_norm ),则应用它。 否则,如果 normalizer_fn 为None且 biases_initializer 提供了a, biases

JavaScript中this的指向

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-28 14:58:17
MDN文档上this介绍 与其他语言相比,函数的 this 关键字在 JavaScript 中的表现略有不同,此外,在严格模式和非严格模式之间也会有一些差别。 在绝大多数情况下,函数的调用方式决定了this的值。this不能在执行期间被赋值,并且在每次函数被调用时this的值也可能会不同。ES5引入了bind方法来设置函数的this值,而不用考虑函数如何被调用的,ES2015 引入了支持this词法解析的箭头函数(它在闭合的执行环境内设置this的值)。 1.this的最终指向的是那个调用它的对象 例子1: 调用fn方法的对象为window function a(){ var user = "追梦子"; console.log(this.user); //undefined console.log(this); //Window或者global } a(); 例子2: 例子1=例子2 function a(){ var user = "追梦子"; console.log(this.user); //undefined console.log(this);  //Window } window.a(); 例子3: 调用fn方法的对象为o var o = { user:"追梦子", fn:function(){ console.log(this.user); //追梦子 } } o

01背包问题的变体

守給你的承諾、 提交于 2019-11-28 13:48:24
题目描述 维克多博士创造了一个裂变反应堆,可取用处于液体状态的放射性物质。反应堆的容量是V加仑。他有N瓶的放射性液体,每个都有一定的质量和一定的体积。当液体倒入反应堆时,也产生一些单位的能量。现在,维克多想要将能量输出最大化。但是,有一个限制条件。他研究了原子元素的物理知识和历史,认识到反应堆内放射性液体的总量不能超过特定的临界质量M,否则反应就会失控,并引发剧烈的爆炸。 写一个算法,帮助他从反应堆获得最大的能量,而不会让他丢掉性命。 输入 该函数/方法的输入包括六个参数—— reactorCap,一个整数,表示反应堆的容量(V); numberOfRadLiquid,一个整数,表示现有小瓶的数量(N); criticalMass,一个整数,表示反应堆的最大临界质量(M); volumes,一个整数列表,按顺序表示N份放射性液体的体积; masses,一个整数列表,按顺序表示N份放射性液体的质量; energies,一个整数列表,按顺序表示N份放射性液体产生的能量。 输出 返回一个整数,表示可在给定的约束条件下从反应堆中产生的最大能量。 约束条件 1=<numberOfRadLiquid<=10^4 思路:可以用01背包问题的思路进行求解。 关于01背包问题的详细解析,可参考https://blog.csdn.net/mu399/article/details/7722810。