Javascript定义';跌破';对象上的getter?
我已经创建或正在创建一个函数,该函数将接受带有任意值的Javascript定义';跌破';对象上的getter?,javascript,object,getter,Javascript,Object,Getter,我已经创建或正在创建一个函数,该函数将接受带有任意值的数组,并返回格式为{array\u value1:count2,array\u value2:count2,…}的对象 是否可以覆盖或扩展对象的默认get属性,以便在另一段代码访问对象中不存在的键时返回值或运行函数?例如,如果有人试图访问return\u对象[key\u不存在],我是否可以修改getter,使对象不返回null,而是返回0 我知道你确实可以,但它似乎没有能力修改访问不存在的属性时发生的情况——我知道Ruby具有这种能力(而且它
数组
,并返回格式为{array\u value1:count2,array\u value2:count2,…}
的对象
是否可以覆盖或扩展对象的默认get
属性,以便在另一段代码访问对象中不存在的键时返回值或运行函数?例如,如果有人试图访问return\u对象[key\u不存在]
,我是否可以修改getter
,使对象不返回null
,而是返回0
我知道你确实可以,但它似乎没有能力修改访问不存在的属性时发生的情况——我知道Ruby
具有这种能力(而且它在IIRC中使用得相当广泛)。有没有一种方法我还没有找到
下面的具体问题
任务:计算包含在以下形式的数组中的票证数
const tickets = [
'red',
'red',
'green',
'blue',
'green'
]
并以以下格式返回计数:
{
red: 2,
green: 2,
blue: 1
}
到目前为止,我的职能是:
const countTickets = (tickets) => {
let ret_obj = {};
// I did not include this initially, which I think should be fine
ret_obj["red"] = 0
ret_obj["green"] = 0
ret_obj["blue"] = 0
for (let ticket of tickets) {
if (ret_obj.hasOwnProperty(ticket)) {
ret_obj[ticket] += 1;
} else {
ret_obj[ticket] = 1;
}
}
return ret_obj;
}
对于问题的第一部分:可能,使用代理,但最好在可能的情况下避免使用代理。对于第二部分,使用
ret_obj[ticket]=(ret_object[ticket]| 0)+1代码>