0
votes

Fonction de retour JavaScript en tant que propriété d'objet

Je fais un programme où je dois retourner des informations sur un fichier dans un objet. L'objet contient quatre propriétés: 1ère propriété nommée: Naissance code>: qui contient le temps de naissance du fichier dans la SP. 2e propriété nommée: modifiéTime code>: qui contient l'heure à laquelle le fichier est modifié dans la SP. 3ème propriété nommée: Taille code>: qui contient la taille du fichier. 4ème propriété nommée: type code>: qui contient le type du fichier, c'est-à-dire s'il s'agit d'un fichier ou d'un répertoire.

Mon code est le suivant: P>

const fs = require("fs");
fs.stat("./fs1.js", function(err, stats){
var obj = {birthTime: stats.birthtimeMs , 
    modifiedTime: stats.mtimeMs , 
    size: stats.size , 
    type: function(){if(stats.isFile()===true){return "File"}
                          else{return "Directory"}}}
    console.log(obj);
});


4 commentaires

Vous devez exécuter la fonction, il suffit d'ajouter () à la fin de la définition. Quoi qu'il en soit, c'est une meilleure pratique de définir la fonction avant votre objet, puis de l'exécuter là où vous le définissez pour le moment.


En utilisant IIFE: Type: (fonction () {si (STATS.FILE () === true) {Retour "Fichier"} else {retour "Répertoire"}}) () .


N'utilisez pas une fonction. Obtenir type à la variable avant que ce littéral soit créé ou utilise ternaire


UTILISATION - Type: STATS.FLILE () === True? "Fichier": "Annuaire" Et pourquoi mettez-vous cette condition dans une fonction?


4 Réponses :


1
votes

Utilisez un ternaire

const fs = require("fs");
fs.stat("./fs1.js", function(err, stats){
    var type = stats.isFile() ? "File" : "Directory";
    var obj = {
        birthTime: stats.birthtime , 
        modifiedTime: stats.mtime , 
        size: stats.size , 
        type: type 
    };
    console.log(obj);
});


0 commentaires

5
votes

Supprimez la fonction et utilisez l'opérateur ternaire à la place:

type: stats.isFile() ? 'File' : 'Directory'


0 commentaires

1
votes

Faites-le comme un ife code> (expression de la fonction invoqué immédiatement) xxx pré>

ou p>

essayez ternaire code> opérateur P>

const fs = require("fs");
fs.stat("./fs1.js", function(err, stats){
var obj = {birthTime: stats.birthtime , 
modifiedTime: stats.mtime , 
size: stats.size , 
type: stats.isFile()?"File":"Directory",
console.log(obj);
});


0 commentaires

1
votes

Utilisez ceci:

type: stats.isFile() ? 'File' : 'Directory' 


0 commentaires