设置属性还是返回值?(简单的方式)
javascript: Set Property or return Values? (simple way)
我创建了一个短函数来设置和检索对象(>按名称获取点)的值,但我不确定我的解决方案是否真的很聪明。
您建议如何修改以完善此查询?
var points = {}; //global var
function getPoints() {
var args = arguments, name;
// set points or return them!
if (typeof args[0] == 'object') {
name = args[0].name;
points = { name: args[0].points };
} else {
name = args[0];
return points.name;
}
}
//set:
getPoints(name: "John", points: 0) //set points (0)
getPoints(name: "Pamela", points: 2 ) //set points (2)
//return:
getPoints("John") //returns > (0)
getPoints("Pamela") //returns > (2)
[edit]之前的回答是错误的:没有提到getPoints("John")
的不可能性
据我所知,你试图在一个函数中组合get和set。
您可以在这里使用Points constructor function
,例如:
var Points = function(name,points){
this.name = name || '';
this.points = points || 0;
if (!Points.prototype.get){
var proto = Points.prototype;
proto.get = function(label) {
return this[label] || label
};
proto.set = function(){
if (arguments.length === 2){
this[arguments[0]] = arguments[1];
} else if (/obj/i.test(typeof arguments[0])){
var obj = arguments[0];
for (var l in obj){
if (obj.hasOwnProperty(l)){
this[l] = obj[l];
}
}
}
return this;
};
}
}
var john = new Points('John',0), mary = new Points('Mary',2), pete = new Points;
pete.set({name:'Pete',points:12});
john.set('points',15);
//two ways to get a 'points' property
alert(john.get('points')+', '+pete.points); //=> 15, 12
我将为getter和setter创建一个不同的函数。一个名为getPoints的函数也设置点,这没有任何意义,会混淆ppl:)
我看到的唯一问题是points
的值每次调用getpoints
时都会被覆盖,即:
getPoints({name :"John", points: 0}); // points = {"John": 0}
getPoints({name:"Mein", points:1}); // points = {"Mein":1}
这个名字也很容易混淆。我的版本是:
var points = {};
function getOrSetPoints(){
if(typeof arguments[0] === "object"){
points[arguments[0].name] = arguments[0].points;
}
else
return points[arguments[0]] || arguments[0] + ' not set'
}
相关文章:
- 简单的Javascript方式,在输入字段的每5位数字后添加一个空格
- Javascript使用加载gif的最简单/最优雅的方式
- 如何以非常简单的方式在 JavaScript 中打印星形图案
- 如何在jQuery中以最简单的方式进行调试
- 最简单的实现方式是网页上的动态更新表(java/css)
- 如何以简单的方式将函数转换为 RequireJS 中的模块
- 以简单的方式将多个数据变量传递给 AJAX 函数
- 如何以简单的方式将像素转换为em
- 通过Facebook API发送朋友的生日提醒电子邮件的最简单且免费的方式
- 本地存储,简单的方式
- 使用AngularJS和TypeScript以简单的方式引用
- 如何使用html2canvas和jspdf以正确而简单的方式导出为pdf
- 寻找JavaScript和Java之间的简单通信方式
- 指定简单配置文件HTML或javascript的最佳方式是什么
- 以更简单的方式合并JSON
- 咆哮的工作方式简单,但不是困难的方式,方块
- IE是否有像Chrome、FF、Safari和Opera那样的简单的、javascript驱动的扩展开发方式?
- 简单的javascript for循环没有按照我认为的方式运行
- 如何以更简单的方式正确填写这张表格
- 如何在Javascript-App中引用SQLite的简单方式,只需使用'DB_open,执行SQL.'