javascript对象,函数谜题
本文介绍了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屋!
查看全文