想象一个简单的对象:
function createObj(someValue) {
return {
someFunction: function () {
return someValue;
}
};
};
它基本上是这样的:
var obj = createObj("something");
var result = obj.someFunction(); // "something"
现在,someFunction
指的是一个返回值的函数。
javascript中someFunction
函数使用的正确命名约定应该是什么?
它应该被命名为它的作用吗?或者可以用它返回的对象的名称命名它?
我的意思是,我应该将其命名为value()
,还是应该将其命名为getValue()
?为什么呢?
提前致谢。
答案 0 :(得分:3)
JavaScript中没有“正确”的命名。但是,主要使用三种约定:
在这种方法中,我们创建了一个getter和setter函数,就像在Java中一样:
var value;
this.getValue = function () {
return value;
}
this.setValue(val) {
value = val;
}
在这种方法中,您只有一种方法可以同时执行这两种操作。这里的神奇之处在于它会检查您是否为您的财产提供了新值:
var _value;
this.value = function (val) {
if (arguments.length > 0) {
// Acts like a setter
_value = value;
return this;
}
return _value;
}
定义你的setter以返回你的类的实际实例也很常见,所以你可以这样做:
myObj
.setProp1("foo")
.setProp2("bar");
这个使用较少,但它也是一种选择。它类似于Objective-C @property
语句:
var _value;
Object.defineProperty(this, "value", {
get: function() {
return _value;
},
set: function(val) {
_value = val;
}
});
然后你可以像访问公共财产一样访问它:
console.log(myObj.value); // Calls the getter method
myObj.value = newValue; // Calls the setter method
答案 1 :(得分:1)
一般命名约定说getValue()
将是函数的名称,其中value
将是变量的名称。
因此,如果您直接访问数据,则使用obj.value
,而如果您使用函数获取某些数据,则可以使用obj.getValue()
。
答案 2 :(得分:1)
特别是Javascript有很多命名约定。
这个问题有一个姐姐,希望这对您的问题有所帮助:Clicky for more info
答案 3 :(得分:1)
我个人是getValue和setValue的粉丝,但在阅读其他人的代码库时,我看到了
object.value = function(item){
if (!item) return this.value;
this.value = item;
}
jQuery在常规中使用它,这就是为什么我不想一直打击它。