详解js私有作用域中创建特权方法
作者:bea
本文实例分享了js私有作用域中创建特权方法,供大家参考,具体内容如下 特权方法就是有权访问私有变量和私有函数的公有方法: function MyObject(){ var privateVariable = 10; function privateFunction(){ return false; } this.publicMethod = function(){ privateVariable ++; return privateFunctio
本文实例分享了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();
以上就是本文的全部内容,希望对大家的学习有所帮助。
猜你喜欢
您可能感兴趣的文章:
- JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
- JavaScript事件类型中焦点、鼠标和滚轮事件详解
- JavaScript实现给定时间相加天数的方法
- jQuery中inArray方法注意事项分析
- jquery ui dialog替代confirm实例分析
- AngularJS控制器controller正确的通信的方法
- AngularJS入门心得之directive和controller通信过程
- 详解jquery事件delegate()的使用方法
- AngularJS中的Directive实现延迟加载
- AngularJS中的Directive自定义一个表格
- 理解JavaScript事件对象
- AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值
- 学习JavaScript事件流和事件处理程序
- javascript产生随机数方法汇总
- 在AngularJS中如何使用谷歌地图把当前位置显示出来
- 理解JavaScript表单的基础知识
- jquery获取文档高度和窗口高度汇总
- JavaScript数组的一些奇葩行为
- JavaScript文本框脚本编写的注意事项