javascript 将函数作为对象返回 属性
javascript returning function as an object property
我正在做一个程序,我必须 return 关于一个文件的信息 object.The 对象包含四个属性:
1st 属性 named : birthTime
: 包含文件的出生时间(以毫秒为单位)。
第二个 属性 named : modifiedTime
: 包含以毫秒为单位修改文件的时间。
第三个 属性 named : size
:包含文件的大小。
第 4 个 属性 named : type
: 包含文件的类型,即它是文件还是目录。
我的代码是:
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);
});
当我 运行 它时,我得到:
{ birthTime: 2019-07-16T18:00:51.674Z,
modifiedTime: 2019-07-16T18:00:51.674Z,
size: 327,
type: [Function: type] }
如何使代码 return "File"
而不是 [Function: type]
?
使用三元
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);
});
使用 IIFE
const fs = require("fs");
fs.stat("./fs1.js", function(err, stats){
var obj = {
birthTime: stats.birthtime ,
modifiedTime: stats.mtime ,
size: stats.size ,
type: (function(){
if(stats.isFile()) {
return "File";
} else {
return "Directory";
}
})()
};
console.log(obj);
});
在别处声明函数并调用它
function checkType(stats) {
return stats.isFile() ? "File" : "Directory";
}
const fs = require("fs");
fs.stat("./fs1.js", function(err, stats){
var obj = {
birthTime: stats.birthtime ,
modifiedTime: stats.mtime ,
size: stats.size ,
type: checkType(stats)
};
console.log(obj);
});
计算变量中的值并将其存储
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);
});
删除函数,改用三元运算符:
type: stats.isFile() ? 'File' : 'Directory'
将其设为IIFE
(立即调用的函数表达式)
const fs = require("fs");
fs.stat("./fs1.js", function(err, stats){
var obj = {birthTime: stats.birthtime ,
modifiedTime: stats.mtime ,
size: stats.size ,
type: (function(){if(stats.isFile()===true){return "File"}
else{return "Directory"}}})()
console.log(obj);
});
或
尝试 ternary
运算符
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);
});
使用这个:
type: stats.isFile() ? 'File' : 'Directory'
我正在做一个程序,我必须 return 关于一个文件的信息 object.The 对象包含四个属性:
1st 属性 named : birthTime
: 包含文件的出生时间(以毫秒为单位)。
第二个 属性 named : modifiedTime
: 包含以毫秒为单位修改文件的时间。
第三个 属性 named : size
:包含文件的大小。
第 4 个 属性 named : type
: 包含文件的类型,即它是文件还是目录。
我的代码是:
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);
});
当我 运行 它时,我得到:
{ birthTime: 2019-07-16T18:00:51.674Z,
modifiedTime: 2019-07-16T18:00:51.674Z,
size: 327,
type: [Function: type] }
如何使代码 return "File"
而不是 [Function: type]
?
使用三元
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);
});
使用 IIFE
const fs = require("fs");
fs.stat("./fs1.js", function(err, stats){
var obj = {
birthTime: stats.birthtime ,
modifiedTime: stats.mtime ,
size: stats.size ,
type: (function(){
if(stats.isFile()) {
return "File";
} else {
return "Directory";
}
})()
};
console.log(obj);
});
在别处声明函数并调用它
function checkType(stats) {
return stats.isFile() ? "File" : "Directory";
}
const fs = require("fs");
fs.stat("./fs1.js", function(err, stats){
var obj = {
birthTime: stats.birthtime ,
modifiedTime: stats.mtime ,
size: stats.size ,
type: checkType(stats)
};
console.log(obj);
});
计算变量中的值并将其存储
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);
});
删除函数,改用三元运算符:
type: stats.isFile() ? 'File' : 'Directory'
将其设为IIFE
(立即调用的函数表达式)
const fs = require("fs");
fs.stat("./fs1.js", function(err, stats){
var obj = {birthTime: stats.birthtime ,
modifiedTime: stats.mtime ,
size: stats.size ,
type: (function(){if(stats.isFile()===true){return "File"}
else{return "Directory"}}})()
console.log(obj);
});
或
尝试 ternary
运算符
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);
});
使用这个:
type: stats.isFile() ? 'File' : 'Directory'