原理:参数适配器说白了就是给出要带入数据字段的对应字段的默认值,一旦数据字段值不足,就取默认值补足。

[写法一]:直接返回

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>参数适配器1</title>
    <script type="text/javascript">
    //本地数据对象
    var obj1 = {
        name:'javascript高级编程2',
        age:26,
        price:45,
    }
    function doSomeThing(obj){
        var _adapter = {//这个就是参数适配器,说白了就是参数默认值集合
            name:'javascript高级编程',
            author:'张小小',
            age:28,
            price:59,
            press:'人民邮电出版社'
        }
        for(var i in _adapter){
            _adapter[i] = obj[i] || _adapter[i];
        }
        return _adapter;
    };
    //测试用实例引用
    var o = doSomeThing(obj1);
    alert(o.name);

//本例已经通过验证
    </script>
</head>
<body>
</body>
</html>

[写法一]:闭包返回

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>参数适配器1</title>
    <script type="text/javascript">
    //本地数据对象
    var obj1 = {
        name:'javascript高级编程2',
        age:26,
        price:45,
    }
    function doSomeThing(obj){
        var _adapter = {//这个就是参数适配器,说白了就是参数默认值集合
            name:'javascript高级编程',
            author:'张小小',
            age:28,
            price:59,
            press:'人民邮电出版社'
        }
        for(var i in _adapter){
            _adapter[i] = obj[i] || _adapter[i];
        }
        return (function(){

return _adapter;

})();
    };
    //测试用实例引用
    var o = doSomeThing(obj1);
    alert(o.author);

//本例已经通过验证
    </script>
</head>
<body>
</body>
</html>

[写法三]:匿名对象返回

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>参数适配器1</title>
    <script type="text/javascript">
    //本地数据对象
    var obj1 = {
        name:'javascript设计模式与开发实践',
        age:26,
        price:45,
    }
    function doSomeThing(obj){
        var _adapter = {//这个就是参数适配器,说白了就是参数默认值集合
            name:'javascript高级编程',
            author:'张小小',
            age:28,
            price:59,
            press:'人民邮电出版社'
        }
        return {
            dataobj:function(){
                 for(var i in _adapter){
                     _adapter[i] = obj[i] || _adapter[i];
                 }
                 return _adapter;
             }
        }
    };
    //测试用实例引用
    var o = doSomeThing(obj1);//o变量引用的是返回的匿名对象
    alert(o.dataobj()['name']);//dataobj是匿名对象中的方法,只有执行一次后才会得到方法中的返回值_adapter,所以就有了dataobj()['name']的写法

//本例已经通过验证
    </script>
</head>
<body>
</body>
</html>

最新文章

  1. Spring管理 hibernate 事务配置的五种方式
  2. java面试每日一题11
  3. hibernate mysql写入中文乱码 解决
  4. Linux内网环境DNS修改域名指向,JAVA应用程序能否实时切换的问题总结
  5. 利用icepdf将pdf文件转为图片
  6. linux - 创建用户
  7. Android(java)学习笔记249:ContentProvider使用之获得系统联系人信息01
  8. Linux中输入命令按tab提示后会自动转义解决方案(xjl456852原创)
  9. hdu_2141_Can you find it?(二分)
  10. nfs安装配置
  11. spring、spring mvc、mybatis框架整合基本知识
  12. CSS3文字、背景与列表
  13. 图片完全填充CardView区域
  14. JQuery函数大全
  15. react 使用hooks
  16. Code::Blocks 导入Makefile工程
  17. Zookeeper浏览器工具和Eclipse插件
  18. EOJ #276
  19. HTML 和 JavaScript 实现飘花的效果
  20. shiro(1) 介绍

热门文章

  1. Android-----获取屏幕分辨率DisplayMetrics简介 .
  2. MIME小知识
  3. PS2鼠标+LCD12864实验——终于OK 了
  4. CultureInfo中重要的InvariantCulture
  5. iframe载入等待
  6. http://www.linux-commands-examples.com/xmllint
  7. C# 开发系列(二)
  8. nginx 生成 缩略图 and 生成缩略图到硬盘
  9. android MessageQueue入门
  10. IOS FMDB模糊查询