Javascript对象名称使用问题.我认为
Javascript object name usage issue.. i think
所以我正在设置一个具有私有和公共方法的对象。基本上使用以下格式:
var Utility = function() {
var prive1, priv2, priv3;
function privateMethod1() { //do something }
return {
publicFunc1: function() { //do something different }
publicFunc2: function() { //do something else }
}
}
但是我担心我遇到的一些情况,其中publicFunc2需要调用publicFunc1。例如,我要这样做:
publicFunc2: function() { Utility.publicFunc1(); //then do something else }
这样可以吗?它运行,但它看起来很奇怪,VS2010没有给我。我相信如果有人改变路线var Utility = function() {-> to -> var Utility2 = function() {}然后基本上所有东西都会从物体内部断裂,这似乎是错误的……但我不知道我应该改变什么。我应该使所有的方法基本上私有,然后映射到一个公共功能?例:
{
function privateFunc1() {}
return {
publicFunc1 : privatefunc1
}
}
或者我应该有一个完全不同的方法来实现私有和公共方法和变量的概念?
return {
publicFunc1: function() { },
publicFunc2: function() { this.publicFunc1() }
}
如果你想调用某个函数——给它一个名字,然后用这个名字调用它:
var Utility = function() {
var prive1, priv2, priv3;
function privateMethod1() { //do something }
function Func1() { //do something different }
function Func2() { Func1(); //do something else }
return {
publicFunc1: Func1,
publicFunc2: Func2
};
}
按名称调用本地函数总是比JS中任何其他调用方法都要快。
在这种情况下,请记住YAGNI(您不需要它)的概念。当然,先考虑组织代码的最佳方式,然后在需要的时候进行重构。
这些函数需要公开吗?或者你是在猜测以后可能需要的功能吗?把它们设为私有,现在只有一个公共方法。如果需要,以后再重构。保持简洁。
相关文章:
- JavaScript代码问题:我正在将对象转换为数组
- jquery$(this)对象缺少问题
- JavaScript对象继承问题
- 在对象中添加方法时出现问题
- 基本对象/原型语法问题
- Javascript对象文字,POST问题
- 使用Javascript对象为具有两个背景图像的DIV设置样式时出现问题
- 使用.map解析JSON对象时出现问题
- 类中对象的奇怪问题(John Resig简单继承)
- 访问Javascript对象-Node.js的作用域问题
- JavaScript对象中存在数组的问题
- 递归Javascript对象是否会导致任何问题(内存泄漏)
- JavaScript—父类和子类/对象的此问题
- 我该如何解决这个问题;参考网格”;在JavaScript中完成的对象数
- jQuery拖动到相对位置的可排序列表中时出现可拖动辅助对象位置问题
- 尝试将变量传递到对象中时的作用域问题'的方法构造函数
- 创建jQuery对象时出现问题
- 面向对象,控制器问题,初学者Javascript
- 从 JSON 对象获取数据时出现问题
- Rails的问题,haml + javascript在字段对象的模糊