首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript:为什么函数要区别对待array()和array[]?

Javascript:为什么函数要区别对待array()和array[]?
EN

Stack Overflow用户
提问于 2018-01-01 13:57:02
回答 3查看 61关注 0票数 1

在课堂上,老师无法解释为什么tweets(i)失败,而tweetsi有效:

代码语言:javascript
复制
  var tweets=["hi","who","when","where","bye"];
  alert("start");
  for (var i=0; i < tweets.length; i++) {

    alert(tweets[i]);
  }
  alert("finish"); 
EN

回答 3

Stack Overflow用户

发布于 2018-01-01 14:03:32

括号用于函数,因此array()将是一个名为array的函数。方括号用于数组,因此array[]将是一个数组。array[0]是数组中的第一个条目,array(1)会将1作为参数发送给一个名为array的函数。

并且不要去老师不能解释这么简单的东西的课堂。他们显然不是程序员。

票数 2
EN

Stack Overflow用户

发布于 2018-01-01 14:05:43

tweets(i)在这段代码中失败的原因是,当你说tweets(i)时,javascript会看着它说:“哦,代码想让我找到一个名为tweets的函数,并用一个名为i的参数来执行它。”

当javascript看到tweets[i]时,它会说:“哦,这不是一个函数,代码想让我找到放在数组中的数字,并将存储在数组中的值返回给它。

简而言之,tweets(i)不工作的原因是因为您告诉它警告一个您尚未定义的函数。

票数 1
EN

Stack Overflow用户

发布于 2018-01-01 14:17:08

()是一个方法调用操作符,x是一个成员访问操作符。由于数组不是函数(例如typeof array !== 'function'),因此只能在数组上使用成员访问运算符。

备注:

  • 我不知道上面运算符的specification名称,需要专家对它们进行解释。
  • 函数是一个对象,因此您可以在它上面使用这两个运算符

例如:

代码语言:javascript
复制
var func = function() { return 'hello'; };

func.world = 'earth'
console.log(func());
console.log(func['world'])
console.log(func.world)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48047460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档