上一篇文章简要解读了ECMAScript中关于执行环境、作用域和闭包的基本概念。这一篇文章将在上一篇文章的基础上,重点讨论ECMAScript中的函数(function),以及与其相关的构造器(Constructor)和原型(Prototype)。如不做特殊说明,本文小写开头的“function”指“函数”,而大写开头的“Function”特指ECMAScript中的内置“Function”对象,请注意辨析。
很不一样的“function”
我想每一位朋友对编程语言中的“函数”一词都不会陌生,在典型的面向对象语言中(如Java、C#等),函数也被叫做方法(Method),它往往是作为类(Class)或者说对象(Object)的一部分而存在,用于完成一个独立的任务。可以这么说,在C#中“function is a part of Object”,也就是说C#在语义上将function与Object定义为从属关系,对于C#或Java程序员来说,这种想法已经深入骨髓了。但是我想告诉诸位,如果你是在学习或编写JavaScript,请彻底摒弃这种思想观念,否则将很难真正理解JavaScript中的“函数”,也会觉得JavaScript中很多代码很费解。例如下面一段代码:
如果用C#的语义概念去看,这段代码简直太匪夷所思了,但是JavaScript中这段代码完全合法。
下面文章会具体解读ECMAScript中关于function的奇特定义。
function IS A KIND OF Object
在继续之前,读者朋友可以试试如下代码:
alert(Func instanceof Object);
|
相关文章:
-
2022-12-23
-
2022-12-23
-
2021-11-11
-
2022-12-23
-
2021-11-17
-
2021-12-30
-
2021-04-27
-
2021-08-25