87,922
社区成员
发帖
与我相关
我的任务
分享
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<script>
//外部系统test函数参数
var argObj = { "name": "BruLee", "sex": "男" };
//假设是外部系统JS 函数功能我们不能修改
function test(arg) {
alert(arg.name);//原有功能
}
//新系统需要在外部系统JS test函数 执行时获取相关参数,执行新的功能(原功能不能被破坏)
if (typeof (test) == "function") {
test = (function (arg) {
var original = test;
return function (arg) {
original(arg);
alert(arg.sex);//新功能
};
})();
}
test(argObj);//test 函数被调用,调用时机我们不能撑控
</script>
</body>
</html>
<script type='text/javascript'>
function overLoad(origin,extend){
var temp = origin;
if(typeof origin == 'function'){
origin = (function(){//楼上这边写错了
temp();
extend();
})();
}else extend();
}
origin=function(){
alert(1);
}
var extend=function(){
alert(2);
}
overLoad(origin,extend);
</script>
<script type='text/javascript'>
function overLoad(origin,extend){
var temp = origin;
if(typeof origin == 'function'){
origin = function(){
temp();
extend();
};
}else extend();
}
origin=function(){
alert(1);
}
var extend=function(){
alert(2);
}
overLoad(origin,extend);
</script>
//去除闭包的应用就好理解了。
//其实就是把原函数的引用备份一下,重新用原来的函数名创建个新函数,在新函数内调用备份的函数。
//外部系统test函数参数
var argObj = { "name": "BruLee", "sex": "男" };
//假设是外部系统JS 函数功能我们不能修改
function test(arg) {
alert(arg.name);//原有功能
}
var original = test;
test = function (arg) {
original(arg);
alert(arg.sex);//新功能
};
test(argObj);//test 函数被调用,调用时机我们不能撑控