gpt4 book ai didi

javascript - 严格模式下的 "return"和 "this"

转载 作者:行者123 更新时间:2023-11-28 17:46:00 25 4
gpt4 key购买 nike

是否可以在一个函数中包含“this”和“return”?像这样吗?

我经常使用不同的参数调用该函数。但据我了解严格模式,您必须使用“new ConvertSomething”为每个参数启动该函数。有更短的路吗?谢谢

"use strict";

function convertSomething(convertSeconds){
let minutes = Math.floor(convertSeconds / 600) % 600;
let seconds = Math.trunc(convertSeconds % 600 / 10);
let milliseconds = (convertSeconds % 600)%10;

this.milliseconds = milliseconds;
this.minutes = minutes;
this.seconds = seconds;

let formattedTime = minutes + ":" + seconds + "." + milliseconds;
this.formattedTime = formattedTime;
return formattedTime;
}

let showTime = new convertSomething(2005);

console.log(showTime.milliseconds);
console.log(showTime.formattedTime);
console.log(convertSomething(1000)); // ERROR: this is undefined
<html>
<head>
<meta charset="ISO-8859-1">
<script src="returnthis.js"></script>
</head>
<body>

</body>
</html>

最佳答案

即使这样做的原因有疑问,您也可以这样做这个:

function convertSomething(convertSeconds){
let minutes = Math.floor(convertSeconds / 600) % 600;
let seconds = Math.trunc(convertSeconds % 600 / 10);
let milliseconds = (convertSeconds % 600)%10;
let formattedTime = minutes + ":" + seconds + "." + milliseconds;
if(this){
this.milliseconds = milliseconds;
this.minutes = minutes;
this.seconds = seconds;
this.formattedTime = formattedTime;
}
return(formattedTime);
}

编辑

另一种解决方案是这样的:

function convertSomething(convertSeconds,details){
let minutes = Math.floor(convertSeconds / 600) % 600;
let seconds = Math.trunc(convertSeconds % 600 / 10);
let milliseconds = (convertSeconds % 600)%10;
let formattedTime = minutes + ":" + seconds + "." + milliseconds;
if(details){
details.milliseconds = milliseconds;
details.minutes = minutes;
details.seconds = seconds;
details.formattedTime = formattedTime;
}
return(formattedTime);
}

然后你就可以调用该函数来完成所有事情:

var time = convertSomething(2500);
var details = {};
var time2 = convertSomething(1000,details);
console.log(details.minutes) // or anything else

编辑2

一般来说,类、函数、方法只能做一件事。在您创建 API 的情况下,将函数同时用作函数和构造函数可能会让使用它的人感到非常困惑。出于这些原因,我给您的第二个选项可能是最好的使用方法。

关于javascript - 严格模式下的 "return"和 "this",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46707937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com