j's函数名是地址吗

qq_38801030 2018-11-04 12:55:14
function b(){
alert('bbbb');
}

var a=b;
a();

b赋值给a 那么a引用b 是不是把b函数的地址赋给啦a呢?


var a=function b(){
alert('bbbb');
}

b();//为什么不能调用
...全文
68 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hookee 2018-11-04
  • 打赏
  • 举报
回复
var a=function (){ alert('bbbb'); } 匿名函数不需要有函数名b. 对机器来说,任何数据都是二进制,alert()出来也不是二进制呀。 alert()本身就是BOM的方法,用它去显示变量当然是内部做过处理的,什么样的类型该怎么显示。
qq_38801030 2018-11-04
  • 打赏
  • 举报
回复
引用 8 楼 jslang 的回复:
[quote=引用 1 楼 qq_38801030 的回复:]

js高程上也说函数名是一个指针
如果是指针的话那就是指向函数对象的地址

但是打印函数名结果打印啦函数整体 一脸懵逼不能理解

你打印函数时会要求函数对象作为字符串形式输出,这会隐式的调用Function对象的toString()方法返回函数代码的字符串。
如果你用console.dir(函数名);输出就会看到是个对象

[/quote]很有耐心太谢谢啦
天际的海浪 2018-11-04
  • 打赏
  • 举报
回复
引用 1 楼 qq_38801030 的回复:
js高程上也说函数名是一个指针 如果是指针的话那就是指向函数对象的地址 但是打印函数名结果打印啦函数整体 一脸懵逼不能理解
你打印函数时会要求函数对象作为字符串形式输出,这会隐式的调用Function对象的toString()方法返回函数代码的字符串。 如果你用console.dir(函数名);输出就会看到是个对象
qq_38801030 2018-11-04
  • 打赏
  • 举报
回复
太thank you啦!!! 哪尽然函数名是引用地址 哪输出函数名为什么不是地址而是打印出整个函数 比如function a(){} alert(a);

还有function尽然是个对象那是不是存放在对空间 通过函数名的地址引用堆中的函数 比如a(); a是函数名为a的地址
天际的海浪 2018-11-04
  • 打赏
  • 举报
回复
js中的函数实际上是一个Function对象。函数名就是一个存放Function对象引用地址的变量。 因为function(){}有两种用法。 当function关键字出现在行首,它是一条“语句”。其中的函数名被创建为函数所在作用域中的变量。 当function关键字不是出现在行首,它就是一条“函数表达式”,作为“表达式”就有返回值返回函数的引用地址。 函数表达式可以不写函数名,也就是匿名函数。如果函数表达式写了函数名,这个函数名是作为这个函数内的局部变量。只能在这个函数内访问,不能在这个函数外访问,一般只用于方便函数的递归调用。
qq_38801030 2018-11-04
  • 打赏
  • 举报
回复
引用 2 楼 hookee 的回复:
var a=function (){
alert('bbbb');
}
匿名函数不需要有函数名b.

对机器来说,任何数据都是二进制,alert()出来也不是二进制呀。
alert()本身就是BOM的方法,用它去显示变量当然是内部做过处理的,什么样的类型该怎么显示。
还有你还没回答我的问题呢函数名是地址吗 是指向函数的指针吗
qq_38801030 2018-11-04
  • 打赏
  • 举报
回复
引用 2 楼 hookee 的回复:
var a=function (){
alert('bbbb');
}
匿名函数不需要有函数名b.

对机器来说,任何数据都是二进制,alert()出来也不是二进制呀。
alert()本身就是BOM的方法,用它去显示变量当然是内部做过处理的,什么样的类型该怎么显示。
首先b为什么能调用a方法 var b; function a(){alert('a');} b=a; 我觉得 a方法的地址赋值给b 所以b也能调用a方法
qq_38801030 2018-11-04
  • 打赏
  • 举报
回复
引用 2 楼 hookee 的回复:
var a=function (){
alert('bbbb');
}
匿名函数不需要有函数名b.

对机器来说,任何数据都是二进制,alert()出来也不是二进制呀。
alert()本身就是BOM的方法,用它去显示变量当然是内部做过处理的,什么样的类型该怎么显示。

哪我该怎么理解这段 function a(){alert('aa');} var b=a; b可以调用a方法
qq_38801030 2018-11-04
  • 打赏
  • 举报
回复

js高程上也说函数名是一个指针
如果是指针的话那就是指向函数对象的地址

但是打印函数名结果打印啦函数整体 一脸懵逼不能理解

87,901

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧