我正在尝试扩展基础Object对象以包含所有对象的join函数。代码看起来像这样(显然不是有效的代码):
function is_scalar(obj){return (/string|number|boolean/).test(typeof obj);}
Object.defineProperties(Object.prototype, {
"join": {
value: (seperator = " ", recursive = false) => {
var out = [];
Object.keys(Object).forEach((prop) => {
if (Array.isArray(Object[prop])) {
out.push(Object[prop].join(seperator));
}
else if(is_scalar(Object[prop])){
out.push(Object[prop]);
}
});
return out.join(seperator);
},
enumerable: false
}
});
问题是我不知道如何引用Object.Keys
子句的实例对象。
努力
我已经尝试了this
,但它引用了window
对象。
我也尝试过使用Object
和Object.prototype
,两者都显示为空。
答案 0 :(得分:1)
Object.defineProperties(Object.prototype, {
"join": {
value: function (seperator = " ", recursive = false) {
console.log(this);
},
enumerable: false
}
});
({}).join()