`

Function 和Object 的关系<一>

    博客分类:
  • js
 
阅读更多

转载:http://www.jb51.net/article/76553.htm

Function是javascript里最常用的一个概念,javascript里的function是最容易入手的一个功能,但它也是javascript最难理解最难掌握的一个概念。

今天我们来尝试理解Function和Object.因为这个里面有些人前期可能会搞糊涂.他们之间到底是什么关系.当然也不除外当初的我.

注意:官方定义: 在Javascript中,每一个函数实际上都是一个函数对象.

我们先来看最简单的两个代码,也是最容易理解的.

function fn(){}
var obj = {}
console.log(fn instanceof Function)//true
console.log(obj instanceof Object)//true
console.log(fn instanceof Object)//true
console.log(obj instanceof Function)//false

 前面两个打印的效果,大家都容易理解.后面 fn instanceof Object 是为true.这里也是一样,从函数的定义来说: 在javascript中一切函数实际都是函数对象. 所以为true就不奇怪了.obj instanceof Function 为false,当然不奇怪了.因为他是一个对象,不是函数.

我们再来看一个代码

console.log(Function instanceof Object); // true
console.log(Object instanceof Function); // true

 代码很简单.运行结构两个都是为true,为什么呢? 第一个用函数的定义来说,(javascript中函数实际也是一个函数对象),当然为true,那第二个呢?对象也是函数?

Object也是函数.因为Object的结构是function Object(){native code}.

这种形式,很清晰的就是声明的一个Object函数,当然就是函数了,所以两个都是为true.

他们两个Function和Object函数实现代码,那当然是不一样了.他们是怎么实现的,那我们就不去详细琢磨了,如果想琢磨的,就可以了解浏览器的相关知识了。

 

 

分享到:
评论

相关推荐

    ASP+ACCESS毕业设计 网上购物系统 论文+源码

    文中着重论述了该系统的功能与实现、数据流程与存储、网上购物、后台管理等&lt;br&gt;经分析,使用Microsoft公司的ASP(Active Server Pages)和相关网页开发工具,利用微软提供的IIS建立运行环境,再利用ODBC(数据源)...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    你可以将上面的myfile.xml修改一下,比如将&lt; email&gt;改为&lt; Email&gt;,然后用IE5直接打开myfile.xml,会得到一个出错信息页面: &lt;?xml version="1.0" encoding="GB2312"?&gt; &lt;myfile&gt; &lt;title&gt;XML轻松学习手册&lt;/title&gt; ...

    freemarker总结

    除了无法访问它的大小和不能使用索引来获得它的子变量:集合可以看作只能由&lt;#list...&gt;指令使用的受限sequences。 5、 方法:通过传递的参数进行计算,以新对象返回结果 方法变量通常是基于给出的参数计算值在数据...

    LuaBind 源码 (Lua增强库)

    为了调用一个Lua函数, 你可以或者用 call_function() 或者用 一个对象(object). template&lt;class Ret&gt; Ret call_function(lua_State* L, const char* name, ...) template&lt;class Ret&gt; Ret call_function(object const...

    xml入门教程/xml入门教程

    2.xml文件是由元素和元素的内容以及属性组成的,一个xml文件中只能有一个根元素,标签和标签的内容加在一起叫作一个元素。xml是大小写 敏感的,只能以字母或下划线开头。 字符转义 &lt; 代表 "&lt;" , &gt; 代表 "&gt;" ,...

    JavaScript中Object和Function的关系小结

    Function instanceof Object 和 Object instanceof Function 都是 true 1。我们可以认为 Object 是一个特殊的“类”,而这里的“类”即:Function 于是便可以理解为: Object = Function () {} 或 Object = new ...

    JavaScript中Function函数与Object对象的关系

    今天我们来尝试理解Function和Object.因为这个里面有些人前期可能会搞糊涂.他们之间到底是什么关系.当然也不除外当初的我. 注意:官方定义: 在Javascript中,每一个函数实际上都是一个函数对象. 我们先来看最简单的...

    ASP.NET常用代码

    /// &lt;para&gt;格式后的异常信息字符串,包括异常内容和跟踪堆栈.&lt;/para&gt; /// &lt;/retvalue&gt; /// &lt;/summary&gt; public static String FormatException(Exception ex, String catchInfo) { StringBuilder strBuilder = new ...

    浅谈Javascript中的Function与Object

    Object是最顶层的对象,所有的对象都将继承Object的原型,你也要知道Object也是一个函数对象,所以说Object是被Function构造出来的。 Function 与Object 关系图: 代码如下: [removed] var Foo= function(){} var ...

    ASP.NET程序中常用的三十三种代码.txt

     /// &lt;para&gt;格式后的异常信息字符串,包括异常内容和跟踪堆栈.&lt;/para&gt;  /// &lt;/retvalue&gt;  /// &lt;/summary&gt;  public static String FormatException(Exception ex, String catchInfo)  {  StringBuilder ...

    c#源码转java源码的-cpp.react:C++React:C++11的React式编程库

    它使能状态和事件流之间的数据依存关系的声明式定义。 根据这些定义,更改的传播会自动处理。 这是一个简单的例子: using namespace react; void AddNumbers(int a, int b) { return a + b; } // Two state ...

    import-grapher:根据js入口点生成依赖关系树

    importgrapher &lt; entrypoint&gt; 选项 --no-cache ,禁用缓存机制 --out-file &lt;filename&gt; ,设置输出文件名 原料药 您还可以将Import Grapher用作Node.js API const importGrapher = require ( 'import-grapher' ) ; ...

    JavaScript基础和实例代码

    1.7.2 使用&lt;noscript&gt;和&lt;/noscript&gt;标记对给出提示信息 1.8 JavaScript的实现基础 1.8.1 ECMAScript 1.8.2 DOM 1.8.3 BOM 1.9 客户端与服务器端脚本 1.10 JavaScript与JScript、 VBScript 1.11 JavaScript与Java、...

    验证javascript中Object和Function的关系的三段简单代码

    话说在楼猪理解和实践能力尚欠火候的时候,在这篇里曾经照搬了李战老师不少东西写在自己的博客...下面楼猪就通过自己写的几段简单代码,论证一下javascript内置Object和Function的关系。 1、Function就是Object,Object

    PHP 面向对象技术(全面讲解).txt

    类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,而对一类对象的抽象就是 类。类描述了一组有相同特性(属性)和相同行为(方法)的对象。 上面大概就是它们的定义吧,也许你是刚接触面向对象的朋友,...

    java课程实验

    &lt;&gt; &lt;0&gt; &lt;0 2&gt; &lt;0 3 6&gt; &lt;0 4 8 12&gt; 4、利用二维数组实现一个矩阵类:Matrix。要求提供以下操作:(1)set(int row, int col, double value):将第row行第col列的元素赋值为value;(2)get(int row,int col):取...

    [原创]自己工作中常用的模板库,简化你的工作

    [functionobject.hpp] ★ 把一些常用目的的函数封装成函数对象,比如"比较器/测试器" ☆ function object with special abstract targart. e.g. "comparer/Tester" ◆ [functionCreater.hpp] ★ 把多元函数封装为...

Global site tag (gtag.js) - Google Analytics