fn

【JS核心概念】this的指向

谁说胖子不能爱 提交于 2020-01-16 16:01:08
重点: [x] this的指向是函数被调用的时候确定的; [x] 箭头函数中this的指向来自它定义时所处的外部环境。 写在前面:非严格模式下,在浏览器环境中全局对象为window对象,在Node环境中全局对象为global对象,严格模式下,全局对象为undefined。 以下代码运行环境为浏览器,因此全局对象为window对象,使用var和function命令声明的全局变量会变成全局对象的属性。 一、分类讨论 1. 函数名调用模式 如果一个函数中存在this,且直接以函数名的形式调用,那么this指向全局对象; var a1 = 1; function fn1() { var a1 = 2; console.log(this.a1); console.log(this); } fn1(); // 输出结果为: // 1 => 以函数名的形式直接调用fn1,此时fn中的this指向全局对象Window,因此this.a1等于1 // Window function fn2() { var a2 = 2; console.log(this.a2); console.log(this); } fn2(); // 输出结果为: // undefined => 此时fn中的this指向全局对象Window,而Window中没有定义变量a,因此返回undefined // Window

new关键字执行过程的简单理解

你说的曾经没有我的故事 提交于 2020-01-16 13:41:58
new关键字执行过程的简单理解 demo: //定义构造函数Fn function Fn ( a , b ) { this . a = a ; this . b = b ; this . add = function ( ) { console . log ( a + b ) ; } } //通过关键字new创建对象 var fn = new Fn ( 1 , 2 ) fn . add ( ) //3 new关键字执行过程: 当 new Fn() 时,会创建一个空对象,在堆内存中开辟一块空间来存储对象实例 对象实例的原型指向构造函数 Fn() 的 prototype 属性 构造函数 Fn() 中的 this 关键字指向开辟的空间,this 关键字向内存空间中添加属性和方法 将对象实例赋值给变量 fn ,栈内存中的变量 fn 指向堆内存中开辟的空间,可以操控空间中的数据 来源: CSDN 作者: 廊坊吴彦祖 链接: https://blog.csdn.net/weixin_45426836/article/details/103999348

js绑定事件和解绑事件

懵懂的女人 提交于 2020-01-16 03:01:47
在js中绑定多个事件用到的是两个方法:attachEvent和addEventListener,但是这两个方法又存在差异性   attachEvent方法 只支持IE678,不兼容其他浏览器   addEventListener方法 兼容火狐谷歌,不兼容IE8及以下 addEventListener方法 div.addEventListener('click',fn); div.addEventListener('click',fn2); function fn(){ console.log("春雨绵绵"); } function fn2(){ console.log("到处潮湿"); } attachEvent方法 div.attachEvent('onclick',fn); div.attachEvent('onclick',fn2); function fn(){ console.log("春雨绵绵"); } function fn2(){ console.log("到处潮湿"); } 注意点:attachEvent方法绑定的事件是带on的,addEventListener绑定的事件是不带on的 下面我写了一个兼容了IE和火狐谷歌的方法 var div=document.getElementsByTagName("div")[0]; addEvent('click',div

js绑定事件和解绑事件

白昼怎懂夜的黑 提交于 2020-01-16 03:00:21
在js中绑定多个事件用到的是两个方法:attachEvent和addEventListener,但是这两个方法又存在差异性   attachEvent方法 只支持IE678,不兼容其他浏览器   addEventListener方法 兼容火狐谷歌,不兼容IE8及以下 addEventListener方法 div.addEventListener('click',fn); div.addEventListener('click',fn2); function fn(){ console.log("春雨绵绵"); } function fn2(){ console.log("到处潮湿"); } attachEvent方法 div.attachEvent('onclick',fn); div.attachEvent('onclick',fn2); function fn(){ console.log("春雨绵绵"); } function fn2(){ console.log("到处潮湿"); } 注意点:attachEvent方法绑定的事件是带on的,addEventListener绑定的事件是不带on的 下面我写了一个兼容了IE和火狐谷歌的方法 var div=document.getElementsByTagName("div")[0]; addEvent('click',div

五分钟入门rust语言

帅比萌擦擦* 提交于 2020-01-16 00:29:07
1. 入坑rust 1.1 rust发展历程 2006年,Mozilla 员工 “Graydon Hoare” 开发了Rust。 2015年5月15日,Rust编程语言核心团队正式宣布发布Rust 1.0版本,之后连续4年,在Stack Overflow开发者「最受喜爱编程语言」评选中获得第一名。 2019年7月4日,社交网络巨头Facebook联合其他100个行业巨头,对外宣布准备建设Libra(天秤座)项目。该项目的技术特点是:构建于区块链技术之上,并且基于Rust实现。 2019年7月18日,微软安全响应中心(MSRC)发文宣称:我们需要更安全的系统编程语言。 在suricata5.0上,rust已经成为一个必选组件,被用来编写应用层解析代码。 需要基于suricata开发项目的我,不得不入坑rust了。 1.2 rust安装 rustup 是rust官方的版本管理工具。应当作为安装 Rust 的首选。 在linux/mac下,运行一条命令就行了: curl https : / / sh . rustup . rs - sSf | sh 但是由于众所周知的防火墙问题,我们需要配置一下中科大的源。 详细参考:https://zhuanlan.zhihu.com/p/26944087 2. Rust初印象 rust对标c/c++,是一个编译型系统级编程语言

对js中Function的浅见

北城余情 提交于 2020-01-15 08:56:05
它到底是什么 String Array 都是系统内置对象(已经定义好,可以直接使用)当然,这货也是一样, 我们之前定义的函数,其实就是一个这货的实例。 在 JS 中,所有的对象都是由函数实现的,函数的数据类型是 object 。 So ,我们以前定义的函数也是一个对象。 几种写法 1 function fn1(a,b){ 2 return a+b; 3 } 4 5 //前面表示参数,后面表示函数语句 6 var fn2 = new Function("a","b","return a+b"); 7 8 // 匿名函数 9 var fn3=function(a,b){ 10 return a+b; 11 } 12 13 14 console.log(fn1(1,2)); 15 console.log(fn2(1,2)); 16 console.log(fn3(1,2)); // 注意,一定要在声明函数的后面调用 另外,如果函数没有明确的返回值,或者调用了没有参数的return, 那么它真正 返回的值是 undefined 1 function fn(){ 2 //..... 3 } 4 5 6 function fn1(){ 7 return; 8 } 9 10 11 console.log(fn()===undefined); // true 12 console.log(fn1(

js方法封装大全

空扰寡人 提交于 2020-01-15 02:41:11
/** * @version: v2.5.0 * @buildTime: Thu Jul 16 2015 17:36:29 GMT+0800 (中国标准时间) */ ( function ( global , document , S , undefined ) { var location = global . location , ua = navigator . userAgent , documentElement = document . documentElement , head = document . head || document . getElementsByTagName ( "head" ) [ 0 ] , isSupportConsole = global . console && console . log , noop = function ( ) { } , error = function ( msg ) { throw isError ( msg ) ? msg : new Error ( msg ) ; } , /** * 配置对象 * @type {Object} */ Config = { debug : location . search . indexOf ( "debug" ) !== - 1 ? true : false } ,

jQuery事件绑定方法bind、 live、delegate和on的区别

…衆ロ難τιáo~ 提交于 2020-01-13 09:48:56
jQuery事件绑定方法bind、 live、delegate和on的区别 我们试图绑定一些事件到DOM元素上的时候,我相信上面这4个方法是最常用的。而它们之间到底有什么不同呢?在什么场合下用什么方法是最有效的呢? 1.准备知识 当我们在开始的时候,有些知识是必须具备的: 1).DOM树 下图仅仅是一个示例,这是一个在browser环境下的一棵模拟DOM树,在下面的代码中仅起到演示的作用: 2).Event bubbling (aka event propagation)冒泡 我们的页面可以理解为一棵DOM树,当我们在叶子结点上做什么事情的时候(如click一个a元素),如果我们不人为的设置stopPropagation(Moder Browser), cancelBubble(IE),那么它的所有父元素,祖宗元素都会受之影响,它们上面绑定的事件也会产生作用。看一个示例: 复制内容到剪贴板 程序代码 $('a').bind('click', function() { alert("That tickles!") }); 当我们在a 上面点击的时候,首先会触发它本身所绑定的click事件,然后会一路往上,触发它的父元素,祖先元素上所有绑定的click事件,就像下图演示的那样。 3).示例HTML 为了对下面的代码进行演示,添加一些HTML代码: 复制内容到剪贴板 程序代码 1 <ul

thinkpad取消fn键功能

允我心安 提交于 2020-01-12 16:48:05
转自:https://bbs.thinkpad.com/thread-1834235-1-1.html 1就是一直觉得fn建自动开启很烦人,于是百度后得到 我们可以 控制面板 -- 键盘--thinkpad f1到f12键中修改,, 然后我 按照教程走,到键盘后 找不到 thinkpad f1到f12键,而且 我在BIOS中的 Keyboard/Mouse里面 ,也找不到 Change to "f1-f12 keys 选项,求指教 是啥驱动没装还是什么情况。。。。 我的系统是 win7 64bit, 笔记本型号为thinkpad E450 因为那个是E420/E520时候专属的功能,到E450/E550开始,采用的是Fn锁定的功能,即Fn + Esc随时切换F1~F12的主次功能,我觉得这功能挺好的啊,比以前的好。 来源: https://www.cnblogs.com/sharpest/p/6224644.html

keras中的loss、optimizer、metrics

▼魔方 西西 提交于 2020-01-12 14:57:59
用keras搭好模型架构之后的下一步,就是执行编译操作。在编译时,经常需要指定三个参数 loss optimizer metrics 这三个参数有两类选择: 使用字符串 使用标识符,如keras.losses,keras.optimizers,metrics包下面的函数 例如: sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True) model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy']) 因为有时可以使用字符串,有时可以使用标识符,令人很想知道背后是如何操作的。下面分别针对optimizer,loss,metrics三种对象的获取进行研究。 optimizer 一个模型只能有一个optimizer,在执行编译的时候只能指定一个optimizer。 在keras.optimizers.py中,有一个get函数,用于根据用户传进来的optimizer参数获取优化器的实例: def get(identifier): # 如果后端是tensorflow并且使用的是tensorflow自带的优化器实例,可以直接使用tensorflow原生的优化器 if K.backend() == 'tensorflow': #