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('div'));
});
createMask();
var singleton = function(fn) {
var result;
return function() {
return result || (result = fn());
}
}
var createMask = singleton(function() {
return document.body.appendChild(document.createElement('div'));
});
console.log(createMask());
区别在于:fn()和fn.apply(this, arguments);
结果都是一样..
能不能说下具体什么原因?
var result;
return function() {
return result || (result = fn.apply(this, arguments));
}
}
var createMask = singleton(function() {
return document.body.appendChild(document.createElement('div'));
});
createMask();
var singleton = function(fn) {
var result;
return function() {
return result || (result = fn());
}
}
var createMask = singleton(function() {
return document.body.appendChild(document.createElement('div'));
});
console.log(createMask());
区别在于:fn()和fn.apply(this, arguments);
结果都是一样..
能不能说下具体什么原因?
fn();//fn函数中this指代window
fn.apply(this);//fn函数中this指代当前this(就是参数传递的这个)