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

原型对象上的私有成员

5.原型对象上的私有成员
==================

**知点点**
1.原型对象
2.共享私有成员

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

1.原型对象
--------
- 任何函数都有一个原型对象属性
- 定义在原型对象上的成员,被构造函数所有实例所共享

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

2.共享私有成员
-----------
- 私有成员: 函数的局部变量
- 共享私有成员,可以提高代码执行效率,实现代码复用,节省空间

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

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

```html
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>原型对象上的私有成员</title>
</head>
<body>
<script>
    //面临的问题
    //1. 将私有成员与构造函数一起使用时,每一次的实例化,都会重新创建这些私有成员
    //2. 凡是通过this添加到构造函数中的成员,也会面临同样的问题
    // 为了避免重复创建私有成员,可以将这些需要共享的私有成中,创建到构造函数的原型对象上
    // 原型对象,就是一个对象,如果原型的constructor和__proto__属性,你认为不重要,可以直接用字面量来创建它

    var Stu = function (siteName) {
        // 私有成员
        var site = siteName;

        // 公有函数(闭包)特权方法
        this.getSite = function () {
            return site;
        };
    };

    // 将共享的私有成员,放在构造函数的原型对象上
    // 参数前面的案例, 可以通过一个自执行函数来实现这个功能
    // 只要这个自执行函数(即时函数)返回一个对象字面量即可
    Stu.prototype = (function (){
        // 共享的私有成员
        var browser = 'Chrome';

        // 共享的特权方法
        return {
            getBrowser: function () {
                return browser;
            }
        }
    }());

    // 实例化
    var stu = new Stu('0133.cn');
    // 实例的特权方法
    console.log( stu.getSite() );

    // 原型的特权方法
    console.log( stu.getBrowser() );
</script>
</body>
</html>
```


任务

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