gpt4 book ai didi

javascript - 我可以将 forEach 方法添加到 Array 原型(prototype)的 String 原型(prototype)吗?

转载 作者:行者123 更新时间:2023-12-01 23:11:04 25 4
gpt4 key购买 nike

我们知道在 JavaScript 中有一个用于数组的 .forEach() 方法。但是字符串没有内置该方法。

那么,下面的代码片段有没有问题:String.prototype.forEach = Array.prototype.forEach ?

此设置帮助我对字符串使用 .forEach

let myName = "Avetik";   

String.prototype.forEach = Array.prototype.forEach;

myName.forEach(char => {

console.log(char);
})

上面的代码工作正常并输出我名字的所有字符。

你已经猜到我是 JS 新手了。

最佳答案

可以,但是:

  • 这很令人困惑(在同一代码库上工作的其他开发人员在看到这样一个在字符串上调用的方法时可能会非常困惑)
  • 可能导致代码脆弱(如果您定义String.prototype.forEach,它可能会干扰其他使用 String 原型(prototype)方法的代码)
  • 帮助不大:您可以非常轻松地执行 [...str].forEach,也可以执行 for (const char of str) {很容易

// Say we want to iterate over this string:
const str = 'str';

// without adding a method to the prototype. Easy:

// One method:
for (const char of str) {
console.log(char);
}

// Another method:
[...str].forEach((char) => {
console.log(char);
});

所以,这是可行的,但这可能不是一个好主意。

关于javascript - 我可以将 forEach 方法添加到 Array 原型(prototype)的 String 原型(prototype)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69935809/

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