Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一般使用javascript映射函数意味着什么?_Javascript_Arrays_Prototype - Fatal编程技术网

一般使用javascript映射函数意味着什么?

一般使用javascript映射函数意味着什么?,javascript,arrays,prototype,Javascript,Arrays,Prototype,我正在查看Mozilla开发者页面上关于map函数的文档,对其中一个示例有疑问 这里是到dev页面的链接。我正在看“一般使用映射”示例。我还包括以下代码: 首先,它们“一般”使用map是什么意思。我猜这和 var map = Array.prototype.map; JS中的原型对我来说仍然是新事物之一。用我自己的话来说,我所理解的是,它可以用来改变函数的工作方式,它的工作方式可以将类的功能添加到JS中 无论如何,这在map变量中存储了什么?为什么现在可以将字符串传递给map函数的args?

我正在查看Mozilla开发者页面上关于map函数的文档,对其中一个示例有疑问

这里是到dev页面的链接。我正在看“一般使用映射”示例。我还包括以下代码:

首先,它们“一般”使用map是什么意思。我猜这和

var map = Array.prototype.map;
JS中的原型对我来说仍然是新事物之一。用我自己的话来说,我所理解的是,它可以用来改变函数的工作方式,它的工作方式可以将类的功能添加到JS中

无论如何,这在map变量中存储了什么?为什么现在可以将字符串传递给map函数的args?在map上调用map函数而不是执行以下操作有什么意义:

var a = 'Hello World'.split('').map( function(x) { return x.charCodeAt(0); });

他们“一般”使用它的意思似乎是在实际上不是数组的东西上使用它,但是有数组的接口

许多内置的数组函数可以用于任何类似数组的东西(数字索引和
.length
属性),这在这里是正确的

在这里,将函数存储在变量中没有实际效果。这将实现相同的结果:

var a = Array.prototype.map.call('Hello World', function(x) { return x.charCodeAt(0); });
为什么现在可以将字符串传递给map函数的args

他们不是。存在于每个函数上的
.call()
方法允许您为方法调用指定
值,因此本质上类似于执行以下操作:

'Hello World'.map(function(x) { return x.charCodeAt(0); });
除非您不能这样做,因为字符串没有
.map
方法

在map上调用map函数而不是执行以下操作的意义是什么

我认为这里的要点是证明它是可以做到的,但另一个好处是它跳过了额外的
.split()
操作

首先,他们“一般”使用map是什么意思

“一般使用map”指的是在非数组的东西上使用
Array.prototype.map()
。它适用于字符串“Hello World”,因为“Hello World”将返回一个长度,并且可以像数组一样迭代

JS中的原型对我来说仍然是新事物之一

我喜欢将原型视为“这个类中内置的东西”。例如,假设您正在制作一个涉及赛车的视频游戏。所有车辆都能“行驶”和“停车”。您可以创建一个“Vehicle”类,并将“Drive”和“Stop”方法保存到其原型中,而不是生成数百辆汽车并反复输入它们的“Drive”和“Stop”方法。现在,当您创建“FastCar”时,您可以将其作为“Vehicle”的一个实例,这样就可以访问这些原型“Drive”和“Stop”方法,而无需每次都重新编写它们

这在map变量中存储了什么

上面发布的
map
变量只是引用了
Array.prototype.map
,因此不需要每次都键入较长的形式

为什么他们现在可以将字符串传递给map函数的args

字符串未作为map函数的参数传递。而是在字符串本身上调用map

在map上调用map函数有什么意义

在您的帖子中,
var-map
实际上并没有调用
Array.prototype.map
,它需要在末尾加上括号才能真正调用它,就像这样:
Array.prototype.map()

而不是像这样做

您提出的解决方案没有问题,但我可以想象文档正在向您展示它的灵活性,以及同一个问题总是有不同的解决方案

'Hello World'.map(function(x) { return x.charCodeAt(0); });