Javascript 解释对返回函数的引用

Javascript 解释对返回函数的引用,javascript,javascript-objects,Javascript,Javascript Objects,这个 一篇关于w3school的文章说 返回值是对函数的引用,而不是函数的名称: 上面所说的实际上是什么意思? 以下代码AFAIU返回(警报)整个函数定义,而不是引用,或者它是?我不确定 var patt = new RegExp("Hello World", "g"); alert(patt.constructor); 能不能请一些人把上面的陈述说得更清楚一些,最好是举个例子 谢谢 dk在JavaScript中,函数是对象的一种类型 对象总是通过引用来寻址 foo的值是对新对象的引用

这个 一篇关于w3school的文章说

返回值是对函数的引用,而不是函数的名称:

上面所说的实际上是什么意思? 以下代码AFAIU返回(警报)整个函数定义,而不是引用,或者它是?我不确定

 var patt = new RegExp("Hello World", "g");
 alert(patt.constructor); 
能不能请一些人把上面的陈述说得更清楚一些,最好是举个例子

谢谢
dk

在JavaScript中,函数是对象的一种类型

对象总是通过引用来寻址


foo
的值是对新对象的引用

var bar = foo;
bar
的值是对同一对象的引用

function baz() {

}
baz
的值是对函数对象的引用

var aaa = baz;
aaa
的值是对同一对象的引用

function baz() {

}

以下代码AFAIU返回(警报)整个函数定义,而不是引用,或者它是

引用用于获取函数。函数的
toString()
方法被隐式调用。该字符串已发出警报


JavaScript不使用显式引用。只要在处理对象时处理引用即可

拿这个作比较:

var one=newregexp(“Hello World”,“g”);
var two=新的RegExp(“再见世界”,“g”);
one.constructor.foo=“foo的值”;

警报(2.constructor.foo)是一种特殊类型的对象。对象是通过引用传递的。这意味着函数在传递时是通过引用传递的

语句试图说明传递的实际上是函数本身,而不仅仅是函数的名称(如字符串)

var patt = new RegExp("Hello World", "g");
patt.constructor === RegExp;      // true
typeof RegExp;                    // function
RegExp.name;                      // RegExp
typeof RegExp.name;               // string
“…两个不同的
构造函数
属性…”它们不是不同的
构造函数
属性,它们是相同的继承属性。