<万博manbetx平台> 对象字面量的私有属性与特权方法 - JavaScript对象与常用设计模式 - 万博manbetx平台中文网
点击切换帐号登陆
帐号密码登陆

对象字面量的私有属性与特权方法

4.对象字面量的私有属性和特权方法
==========================

**知识点**
1.全局对象
2.自执行函数

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

1.全局对象
--------
- 定义在函数之外的变量
- 作用域是贯穿整个应用的生命周期,处处可见

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

2.自执行函数
----------
- 声明之后立即调用
- 可访问全局变量

> 该方式是: **模块模式** 的技术支撑,非常重要
------------------------------------------------

### 示例代码: code/demo04.万博manbetx平台

```万博manbetx平台
<!DOCTYPE 万博manbetx平台>
<万博manbetx平台>
<head>
    <meta charset="UTF-8">
    <title>对象字面量的私有属性与方法</title>
</head>
<body>
<script>
    // 对象字面量
    var obj1 = {
        prop: 'property',
        method: function () {
            return this.prop;
        }
    };
    console.log(obj1.prop);
    console.log(obj1.method());

    // 创建一个对象,我们的目标是将一个可以访问私有属性的特权方法做为属性赋值给它
    var obj2 = {};  // 对象

    // 创建自执行函数,将函数中的特权方法(可访问局部变量)赋值给外部对象
    (function () {
        // 私有成员
        var name = 'peter';

        // 公共方法, 给全局变量obj2赋值
        obj2 = {
            //特权方法
            getName: function () {
                return name;
            }
        };
    }());

    // 外部对象只能通过访问这个特权方法来访问私有属性
    var res1 = obj2.getName();
    console.log(res1);

    // 如果你不习惯以上语法,也可以这样改写一下,效果是一样的
    var obj3 = (function (){
        // 私有成员
        var name = 'peter';

        // 公共方法, 给全局变量obj3赋值
        return  {
            //特权方法
            getName: function () {
                return name;
            }
        };
    }());

    var res2 = obj3.getName();
    console.log(res2);
</script>
</body>
</万博manbetx平台>
```


任务

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