javascript对象,函数谜题
怪我咯
怪我咯 2017-04-10 17:45:03
[JavaScript讨论组]

javascript的对象是由函数创建的吗? 函数是属于对象的一种吗? 我在这个博客看到的 有点http://www.cnblogs.com/wangfu...

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(2)
PHP中文网

楼主可以引入以一个观念,就是JS是基于对象的脚本语言,就是说他的对象有着十分特别的实现。
首先JS函数的声明其实也是创建一个对象的实例,这个对象叫做Function

//你可以通过这样的方式创建函数
function f1();
var f2 = function();
//还可以通过这样的形式
var f3 = new Function();//通过Function构造函数来创建,这个构造函数称为“函数对象”,即是一种特殊的对象

这样就好理解了吧,其实JS中的函数本身也是一个对象的实例,这样的实例既有原型prototype,又有_proto_,可以将此比作“波粒二象性”;
我们把函数(有具体作用的代码段)比作波(包含一个起点到终点的过程,对于函数就是执行到返回);
把对象比作粒(具有实体的单元,对于对象来说就是实例);

那么JS里的函数对象就具有物理上所说的“波粒二象性”。

因此:

  • 在JS中,函数本身也是一个对象,因此“通过函数创建对象”的说法从实现上来说的确没有问题,但并不准确。

  • “函数对象”这个概念应当区分于普通对象—————创建了一个对象,它不一定是函数(构造函数),而一旦声明了一个函数,这个函数一定是一个对象。

  • Function的爹是Object(),所以说,JS是基于对象的脚本语言。

天蓬老师

有什么不对么?人家说的非常对啊,看不懂建议多看几遍,写写例子

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号