当this碰到return时 function fn(params) { this.user = 'fzy' return {} } var a = new fn console.log(a.user)//undefined function fn2(params) { this.user = 'f ...
分类:
其他好文 时间:
2020-05-26 15:28:25
阅读次数:
76
call的实现 Function.prototype.Call=function(...args){ var context=args[0]||window; var argArr=args.slice(1) context.fn=this; //相当于给context加了一个fn属性,属性值为当前 ...
分类:
移动开发 时间:
2020-05-25 19:10:47
阅读次数:
58
防抖 export function throttle (fn, interval = 500) { let canRun = true return function () { if (!canRun) return canRun = false setTimeout(() => { fn.app ...
分类:
其他好文 时间:
2020-05-25 16:02:53
阅读次数:
50
接上一篇继续分析一下runtime.newproc方法。 函数签名 newproc函数的签名为 newproc(siz int32, fn funcval) siz是传入的参数大小(不是个数); fn对应的是函数,但并不是函数指针,funcval.fn才是真正指向函数代码的指针。 关键字go 在go ...
分类:
其他好文 时间:
2020-05-25 12:40:10
阅读次数:
67
1. 装饰器的概念(decorator) 动态扩展已定义函数的功能,但是不改动函数本身的代码。 原理:高阶函数可以接受函数作为参数,并返回一个函数。 所以将需要扩展的函数作为参数传入,生成新的函数返回。 2. 调用装饰器,运用@ 比如定义了装饰器log def log(f): def fn(*arg ...
分类:
编程语言 时间:
2020-05-25 12:39:17
阅读次数:
80
import subprocess p = subprocess.Popen(args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False, shell ...
分类:
编程语言 时间:
2020-05-25 12:37:29
阅读次数:
53
装饰器 装饰器语法 def logger(fn): def wrapper(*args,**kwargs): #包装函数 print("调用前增强") ret = fn(*args,**kwargs) #参数解构 print("调用后增强") return ret return wrapper @l ...
分类:
编程语言 时间:
2020-05-20 20:28:33
阅读次数:
79
闭包 变量作用域 + 变量作用域的概念:就是一个变量可以使用的范围 + JS中首先有一个最外层的作用域:称之为全局作用域 + JS中还可以通过函数创建出一个独立的作用域,其中函数可以嵌套,所以作用域也可以嵌套 + 注意:变量的声明和赋值是在两个不同时期的 fn函数执行的时候,首先找到函数内部所有的变 ...
分类:
Web程序 时间:
2020-05-19 00:19:11
阅读次数:
51
刚换了工作捡一下基础 var a = fn(){属性,方法}; var b = fn(){属性2,方法2}; a.属性2/方法2.apply(b,[参数数组]); //a能调用b的方法 b.属性/方法.call(a, 参数列表1,参数列表2,参数列表...); //b能调用a的方法 ...
分类:
移动开发 时间:
2020-05-18 15:59:58
阅读次数:
48
上一篇写到了jQuery.prototype对象的init方法,因为init方法内容较多,因此弄了个上下篇 先列一下jQuery.prototype对象上的方法与属性吧 jQuery.fn = jQuery.prototype = { jquery: core_version, // 49行 cor ...
分类:
Web程序 时间:
2020-05-18 00:19:32
阅读次数:
79