定义:能够包装函数的,使原本函数增加一些额外的福利的函数
比如: function higherOrderFn(fn){} 能够对fn增加一些额外的福利
应用场景:
(function () {
var getLogin = function () {
var a = parseInt((Math.random() * 10).toFixed(0));
if (a % 2 == 0) {
return {
login: false
}
}
return {
login: true,
userInfo: {
vip: 11,
nickname: 'jake',
userid: '888888888'
}
}
}
var withLogin = function (basicFn) {
var loginInfo = getLogin();
return basicFn.bind(null, loginInfo);
}
window.withLogin = withLogin;
}
)()
(function () {
var withLogin = window.withLogin;
var renderIndex = function (loginInfo) {
if (loginInfo.login) {
console.log('login success render main page');
} else {
console.log('login failed render main page');
}
}
window.renderIndex = withLogin(renderIndex);
}
)();
(function () {
var withLogin = window.withLogin;
var renderPersonalIndex = function (loginInfo) {
if (loginInfo.login) {
console.log('login success render personal page');
} else {
console.log('login success render personal page');
}
}
window.renderPersonalIndex = withLogin(renderPersonalIndex);
}
)()
(function () {
window.renderIndex();
})()
来源:oschina
链接:https://my.oschina.net/u/2285087/blog/3159965