var singleton = function(fn) {
var result;
return function() {
return result || (result = fn.apply(this, arguments)); //关于这里的代码
}
}
var createMask = singleton(
function() {
return document.body.appendChild(document.createElement('p'));
}
)
关于这句代码:
fn.apply(this, arguments)
fn是后面创建p的函数吧,这里的apply是什么作用?
特别是arguments指向什么呀?
他作用是让this指向函数本身的this吗?
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这个特例中的fn是不需要参数,但是你无法保证其他的fn都不需要参数吧?
这段代码是个特例。没有参数。
如果换成下面这段有参数的呢
使用fn.apply(this, arguments));来保证传进有参函数也可以执行并得到结果