javascript对象,函数谜题

查看:82
本文介绍了javascript对象,函数谜题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

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

解决方案

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

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

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

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

因此:

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

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

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

这篇关于javascript对象,函数谜题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆