我愿意在js中創建一個物件如下:
var item = {
id:'skate',
nombre:'electric skate',
status: StatusByDate(this),
enddate: new Date(2022,01,31),
}
并且還有這個函式來處理enddate屬性:
function StatusByDate(obj){
let hoy = Date.now();
if(obj.enddate > hoy){
return "ACTIVE";
} else {
return "ENDED";
}
}
但是,我得到了Cannot read properties of undefined (reading 'enddate'),我不確定物件的屬性是否可以在放置在另一個屬性中的函式中使用。
其次,我也對好的做法感興趣,如果有更好的方法來做到這一點,請告訴我。
uj5u.com熱心網友回復:
使用getter:
function StatusByDate(obj) {
const hoy = new Date();
if(obj.enddate > hoy) {
return "ACTIVE";
} else {
return "ENDED";
}
}
const item = {
id: 'skate',
nombre: 'electric skate',
enddate: new Date(2022, 01, 31),
get status() { return StatusByDate(this); }
}
console.log(item);
uj5u.com熱心網友回復:
您的代碼不起作用,因為您試圖在創建程序中參考該物件。但是,您可以創建專案,然后添加其狀態,如下面的代碼所示。
var item = {
id:'skate',
nombre:'electric skate',
enddate: new Date(2022,01,31),
}
function StatusByDate(obj){
let hoy = Date.now();
if(obj.enddate > hoy){
return "ACTIVE";
} else {
return "ENDED";
}
}
// set the status after the object exists, not during creation
item.status = StatusByDate(item);
console.log(item);
uj5u.com熱心網友回復:
我最終決定創建一個帶有建構式的類,這樣我就可以在其中應用函式并立即獲得結果。
class Sorteo{
constructor(id,nombre,status,enddate){
this.id = id;
this.nombre = nombre;
this.estado = setEstadoByDate(enddate);
function setEstadoByDate(ffin){
let hoy = Date.now();
console.log(ffin);
if(ffin > hoy){
return "ACTIVO";
} else {
return "FINALIZADO";
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/397338.html
標籤:javascript 目的
上一篇:在HTML表單提交上通過Ajax檢查Wordpress中是否存在電子郵件
下一篇:從同一個父類的另一個類訪問物件
