点击切换帐号登陆
帐号密码登陆

如何将私有方法暴露为公共方法使用

6.将私有方法暴露为公共方法使用
------------------------

**知识点**
1.如何创建私有方法?
2.如何调用私有方法?

------------------------------------------------------------

1.如何创建私有方法?
----------------
使用立即执行函数创建私有方法

------------------------------------------------------------

2.如何调用私有方法?
----------------
将私有方法封装到一个对象字面量中,通过全局变量返回到全局

------------------------------------------------------------

### 示例代码: code/demo06.html

```html
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>将私有方法暴露为公共方法使用</title>
</head>
<body>
<script>
    // 之前我们总是想尽办法将一些成员隐藏起来,其实,有时我们有必要将一些私有方法暴露出来给全局对象使用

    // 创建一个数组的检测对象
    var array = null;

    // 通过自执行函数来给这个全局变量赋值,实现私有方法暴露
    (function (){
        //私有方法

        // 判断是否是数组?
        function isArray(arr) {
            return Array.isArray(arr);
        }

        // 查询指定元素是否在数组中存在,并返回索引位置
        function indexOf(arr, data) {
            for (var i = 0; i < arr.length; i += 1) {
                if (arr[i] === data) {
                    return i;  // 找到了则返回索引
                }
            }
            return -1;  // 没找到返回 -1 (-1是一个非法的索引值)
        }

        // 通过全局变量,将这几个方法暴露出来
        array = {
            isArray: isArray,
            indexOf: indexOf,
            inArray: indexOf   // 防止当indexOf不可用时, inArray可用
        };
    }());

    console.log( array );  // {isArray: ƒ, indexOf: ƒ, inArray: ƒ}
    console.log( array.isArray([4,5,6]) );  // true

    console.log( array.indexOf(['html','css', 'javascript'], 'css'));  // 1

    // inArray()也可以正常工作
    console.log( array.inArray(['html','css', 'javascript'], 'css'));  // 1

    // 如果给indexOf()一个非法数据
    array.indexOf = null;

    // 下面这个语法肯定挂掉了
    // console.log( array.indexOf(['html','css', 'javascript'], 'css'));  // 1

    // 但是 inArray()还是可用的
    console.log( array.inArray(['html','css', 'javascript'], 'css'));




</script>
</body>
</html>
```


任务

?不会了怎么办
无数据提示暂无评论哟...我要评论
网站导航
网站首页
学习路径
视频教程
开发软件
旗下子站
php中文网
phpstudy
技术文章
文档工具
关于我们
企业合作
人才招聘
联系我们
讲师招募
QQ交流群
QQ交流群
微信公众号
微信公众号