详解js私有作用域中创建特权方法
更新时间:2016年01月25日 10:55:57 投稿:lijiao
这篇文章主要为大家详细介绍了js私有作用域中创建特权方法,何为特权方法,特权方法就是有权访问私有变量和私有函数的公有方法,感兴趣的小伙伴们可以参考一下
本文实例分享了js私有作用域中创建特权方法,供大家参考,具体内容如下
特权方法就是有权访问私有变量和私有函数的公有方法:
function MyObject(){ var privateVariable = 10; function privateFunction(){ return false; } this.publicMethod = function(){ privateVariable ++; return privateFunction(); }; } var x = new MyObject(); console.log(x.publicMethod()) ;//false
私有作用域中定义私有变量和函数,同样也可以创建特权方法,如:
(function(){ var privateValue = 10; function privateFunction(){ return false; } MyObject = function(){}; //没有var 属于全局变量,严格模式下会报错 MyObject.prototype.publicMethod = function(){ privateValue ++; return privateFunction(); }; })(); var instance = new MyObject(); console.log(instance.publicMethod());
这里就可以看出实际上就是在私有作用域中定义了一个全局的构建函数;其中的一个方法就是返回私有作用域中的一个私有变量和属性。写成下面这样就可以更好地了解:
Obj = function(){}; (function(){ var x = 10; function y(){ return x + 10; } Obj.prototype.say = function(){ console.log(y()); }; })() var ins = new Obj(); ins.say();
以上就是本文的全部内容,希望对大家的学习有所帮助。
相关文章
js报错 Object doesn''t support this property or method的原因分析
运行js是出现Object doesn't support this property or method 错误的可能原因分析。2011-03-03JavaScript的null和undefined区别示例介绍
在Javascript中对于这种生命后没有给定初始值的变量,就给他一个undefined,如果要将一个标识符声明称object类型,但是暂时不给他实例,那么就可以将它先初始化为null2014-09-09
最新评论