• js中对象与函数的关系


    首先什么是对象?根据W3C上面的解释JS中所有事物都是对象,对象是拥有属性和方法的数据,由此可以看出基本值类型不是对象(number、string、Boolean、Undefined),剩下的引用类型(函数、数组、null...)都是对象,也有人说对象是若干属性的集合。

    那么函数和对象是什么关系?

    首先我们来测试一下

    1、函数是一种对象

    function test() {};
    console.log(test instanceof Object);    //    true

    很明显函数是一种对象,但你不能说函数是对象的一种。因为他俩之间是没有包含关系的。有点像鸡蛋和鸡的关系。

    2、对象都是通过函数创建的

    先来看一个例子

    function test() {
        this.name="哈哈"
    };
    var test2=new test();
    console.log(test2 instanceof Object);    //true

    这个例子可以说明对象可以被函数创建。那为什么要说对象都是通过函数创建的,那对象字面量是不是也是通过函数来创建的,答案是肯定的,这是一种语法糖方式。举个简单的例子

    var obj={
        name:"哈哈",
        age:"18"
    }
    var obj=new Object()
    obj.name="哈哈";
    obj.age="18";

    上面的对象字面量其实是通过下面的构造函数来创建的。而其中的Object是一种函数:

    console.log(typeof Object)    //function

    通过上面的简单例子我们可以得出一个结论:对象是通过函数创建的,而函数又是一种对象。那么这是为什么呢?这就牵扯到prototype原型。

  • 相关阅读:
    学校重理论,公司重操作,计算机专业毕业生该何去何从?
    最简单的ajax示例
    几个简单的例子让你读懂什么是JAVA的堆栈跟踪
    避免在JSP中写java代码
    ==和equals()的区别
    测试,我误解了你
    项目管理十大TION法
    Web测试与APP测试有哪些异同?
    spring cglib 与 jdk 动态代理
    java.util.concurrent.Semaphore 使用
  • 原文地址:https://www.cnblogs.com/yuanzhiguo/p/8109540.html
Copyright © 2020-2023  润新知