跳至主要內容

2667. 创建 Hello World 函数


2667. 创建 Hello World 函数open in new window

🟢   🔗 力扣open in new window LeetCodeopen in new window

题目

Write a function createHelloWorld. It should return a new function that always returns "Hello World".

Example 1:

Input: args = []

Output: "Hello World"

Explanation:

const f = createHelloWorld();

f(); // "Hello World"

The function returned by createHelloWorld should always return "Hello World".

Example 2:

Input: args = [{},null,42]

Output: "Hello World"

Explanation:

const f = createHelloWorld();

f({}, null, 42); // "Hello World"

Any arguments could be passed to the function but it should still always return "Hello World".

Constraints:

  • 0 <= args.length <= 10

题目大意

请你编写一个名为 createHelloWorld 的函数。它应该返回一个新的函数,该函数总是返回 "Hello World"

示例 1:

输入: args = []

输出: "Hello World"

解释:

const f = createHelloWorld();

f(); // "Hello World"

createHelloWorld 返回的函数应始终返回 "Hello World"。

示例 2:

输入: args = [{},null,42]

输出: "Hello World"

解释:

const f = createHelloWorld();

f({}, null, 42); // "Hello World"

可以传递任何参数给函数,但它应始终返回 "Hello World"。

提示:

  • 0 <= args.length <= 10

解题思路

这道题的重点在于理解如何创建并返回一个函数,以及 JavaScript 中闭包的基本概念。

  1. 定义一个外部函数 createHelloWorld
  2. 这个函数返回一个匿名函数,而匿名函数的作用就是返回字符串 "Hello World"

复杂度分析

  • 时间复杂度O(1),因为函数只进行简单的字符串返回操作,属于常数时间操作。
  • 空间复杂度O(1),仅仅存储一个字符串,不随输入变化。

代码

/**
 * @return {Function}
 */
var createHelloWorld = function () {
	return function (...args) {
		return 'Hello World';
	};
};

/**
 * const f = createHelloWorld();
 * f(); // "Hello World"
 */