javascript对象中的私有方法
private method in an javascript object
我有一个对象看起来像这样:
var obj ={
property : '',
myfunction1 : function(parameter){
//do stuff here
}
}
我需要设置一些私有属性和函数,这些属性和函数不能从对象外部访问/查看。它不适用于var property:,
或var myFunction1
下一个问题是,如果我在对象内部或外部调用函数,那么我总是必须使用obj.myfunction()
来执行此操作。我想把"this"赋给一个变量。像self : this
。并在对象内部用CCD_ 5和CCD_。
如何?:)
有很多方法可以做到这一点。简而言之:如果dou在另一个函数中定义了一个函数,那么你的内部函数将是私有的,只要你不提供If.的任何引用
(function obj(){
var privateMethod = function() {};
var publicMethod = function() {
privateMethod();
...
};
return {
pubMethod: publicMethod
}
}());
var obj = (function() {
var privateProperty;
var privateFunction = function(value) {
if (value === void 0) {
return privateProperty;
} else {
privateProperty = value;
}
};
var publicMethod = function(value) {
return privateFunction(value);
}
return {
getPrivateProperty: function() {
return privateFunction();
},
setPrivateProperty: function(value) {
privateFunction(value);
}
}
})();
obj.setPrivateProperty(3);
console.log(obj.getPrivateProperty());
// => 3
console.log(obj.privateProperty);
// => undefined
obj.privateFunction();
// => TypeError: undefined is not a function
使用闭包。JavaScript具有函数范围,因此必须使用函数。
var obj = function () {
var privateVariable = "test";
function privateFunction() {
return privateVariable;
}
return {
publicFunction: function() { return privateFunction(); }
};
}();
相关文章:
- AngularJs指令,该指令创建内部有数据对象的新指令
- 为什么页面方法对象未定义
- 如何使用在另一个文件中定义的JavaScript方法/对象
- 为什么dijit.form.Select有方法setStore(),而dijit.fform.FilteringSele
- 如何判断 javascript 对象是否有子对象
- Nodejs使用回调函数缓存有状态对象
- JSPM-是否有方法或需要对捆绑文件进行版本化
- 当用户试图删除indexedDB数据库时,是否有方法执行函数
- Box2dWeb中是否有方法将对象的位置.x输出到console.log()
- 是否有方法在WebCrypto API中获取RSA密钥的组件
- 我怎么能传递一个函数,它有一个对象的引用,在Javascript中传递函数
- 是否有方法可以快速确定浏览器是否支持启用了cors的图像而不会污染浏览器?
- 是否有方法以编程方式确定私钥是用DER还是PEM编码的?
- 在反序列化JSON对象时,是否有方法将属性名称转换为小写?
- 是否有方法检查特定点(X,Y)是否在SVG元素中
- 是否有方法减少相同if语句的代码
- 解析JSON字符串后是否有方法获得对象属性
- 检查对象是否有方法,而不实例化它
- 如果访问amazon s3对象,是否有方法调用lambda函数?
- 在Python中是否有向对象添加方法的惯用方法?