美文网首页js
私有成员和特权方法

私有成员和特权方法

作者: u14e | 来源:发表于2017-03-01 23:57 被阅读3次

模块模式:用于创建拥有私有数据的单件对象的模式

使用IIFE返回一个对象

var person = (function() {
    // 私有属性
    var age = 25;

    // 公有属性和方法
    return {
        name: 'u14e',
        getAge: function() {
            return age;
        }
        grow: function() {
            age++;
        }
    }
}());

暴露模块模式

var person = (function() {
    // 私有属性
    var age = 25;

    function getAge() {
        return age;
    }

    function grow() {
        age++;
    }
    
    return {
        name: 'u14e',
        getAge: getAge,
        grow: grow,
    }
}())

构造函数的私有成员

function Person(name) {
    // 私有属性
    var age = 25;

    this.name = name;
    this.getAge = function() {
        return age;
    }
    this.grow = function() {
        age++;
    }
}

模块模式和构造函数结合

var Person = (function() {
    // 私有属性
    var age = 25;

    function InnerPerson(name) {
        this.name = name;
    }

    InnerPerson.prototype.getAge = function() {
        return age;
    }

    InnerPerson.prototype.grow = function() {
        age++;
    }

    return InnerPerson;
}());

var person1 = new Person('u14e');
var person2 = new Person('u148');

console.log(person1.name);      // 'u14e'
console.log(person1.getAge());  // 25

console.log(person2.name);      // 'u148'
console.log(person2.getAge());  // 25

person1.grow();

console.log(person1.getAge());  // 26
console.log(person2.getAge());  // 26

Person的全部实例共享age变量,在一个实例上的改动会影响另一个

相关文章

  • 私有成员和特权方法

    模块模式:用于创建拥有私有数据的单件对象的模式 使用IIFE返回一个对象 暴露模块模式 构造函数的私有成员 模块模...

  • 第6章 对象模式

    6.1 私有成员和特权成员 JavaScipt 对象的所有属性都是公有的,没有显式的方法指定某个属性不能被外界访问...

  • JavaScript 构造函数私有、公有、静态、特权方法

    3. 构造函数的私有、公有、静态、特权方法 私有属性和方法创建:在构造函数内部创建的变量是私有属性,创建的函数是私...

  • 私有属性/公有属性的理解

    1.私有属性 在对象内部使用'var'关键字来声明,而且它只能被私有函数和特权方法访问。 2.私有方法 在对象的构...

  • 5-类创建相关

    1..m中的私有成员/方法 私有成员变量在.m文件中声明的成员变量是@private的在.m中定义的成员变量不能和...

  • javascript 类的私有/公有/静态属性、方法、特权方法

    1. ES5的声明方法 2. ES6的声明方法 3. 调用 私有属性 公共属性 私有方法 特权方法: 公共方法 原...

  • C++ 友元(9)

    友元函数是一种特权函数,c++允许这个特权函数访问某个类的私有成员 可以把一个全局函数、某个类中的成员函数、甚至整...

  • 模块模式

    模块模式 模块 模式实在单例对象上加上扩展,通过作用域链来关联私有变量和特权方法对象字面量封装模块,闭包实现私有和...

  • Objective-C Runtime API的应用

    查看私有成员变量 获取到成员变量的名称,就能通过KVC为私有成员变量设置值,比如 替换方法实现,交换方法 clas...

  • 2018-12-06

    7.4.1 静态私有变量 通过在私有作用域中定义私有变量或函数,同样也可以创建特权方法,其基本模式如下: 这个模式...

网友评论

    本文标题:私有成员和特权方法

    本文链接:https://www.haomeiwen.com/subject/ytthgttx.html