美文网首页
函数与对象的关系?

函数与对象的关系?

作者: oyakuki | 来源:发表于2017-05-10 13:50 被阅读0次

之前说过函数也是对象,也是若干属性的集合,那为什么用tyoeof操作符打印输出的却是function,而不是object呢?

函数与对象之间的关系是怎么样呢?

诚然,按照我们之前的理解,函数是对象的一种是没有错的,数组也是对象的一种,但是它跟数组却有一点不同,数组我们可以理解成是对象的一个子集,或者是一种变形:

var person = {name:"oyakuki",age:20,say:function(){console.log(this.name + "is saying")}};

var arr = ["a","b","c","d"];

我们可以把数组想想成下面的格式:

var arr = [0:"a",1:"b",2:c,3:"d"];

事实上,在es6中有一个foreach语法,我们通过数组的index,就可以访问到其value。

但是函数跟对象之间的关系却是很复杂的,不像数组和对象之间的关系比较简单;

        function Foo(){
            this.name = "oyakuki";
            this.age = 20;
        }

        var fn = new Foo();

        console.log(typeof fn);  //object

上面的代码中,fn是通过构造函数出来的,并且typeof打印出来的值是object,这说明对象可以通过函数创建出来。

但是我要说的是:对象都是通过函数创建的,可能有人会反驳,因为

var person = {name:"oyakuki",age:20,say:function(){console.log(this.name + "is saying")}};
var arr = ["a","b","c","d"];

但这其实是创建object对象和数组的两外一种写法而已,我们称之为字面量表示法;
另外一种写法是:

        var person = new Object();
            person.name = "oyakuki";
            person.age = 20;

        var arr = new Array();
            arr[0] = "a";
            arr[1] = "b";
            arr[2] = "c";
            arr[3] = "d";

而Object 和Array 都是函数,所以说:对象都是通过函数创建的
那么函数和对象之间的关系到底是什么呢?
理清他们之间的关系,需要了解另外一个概念prototype原型

相关文章

  • this

    对象与函数的关系 * 箭头函数的 this 等于外面的 this

  • 函数与对象的关系?

    之前说过函数也是对象,也是若干属性的集合,那为什么用tyoeof操作符打印输出的却是function,而不是obj...

  • 27-第二十七章 面向对象 OOP 继承(二)

    一、对象 与 函数的关系 1、Object 函数是 Function 的一个实例 2、 函数即是 Function...

  • JavaScript 数据类型2

    数据类型 函数 4.5 arguments 对象 定义 与数组的关系 calle 属性arguments对象带有一...

  • 深入理解JavaScript对象

    对象的种类 函数对象与普通对象 构造函数与原型对象 prototype 与__proto__ prototype ...

  • iOS-RunTime相关知识点整理

    类对象与元类对象的区别? [obj foo] 和 objc_msgSend 函数有什么关系? runtime 如何...

  • js中对象与函数的关系

    首先什么是对象?根据W3C上面的解释JS中所有事物都是对象,对象是拥有属性和方法的数据,由此可以看出基本值类型不是...

  • Options的入门属性

    1、el : 挂载点与 $mount 有替换关系 2、data : 内部数据特点:支持对象和函数,优先使用函数 (...

  • Promsie深入2

    预备知识 函数对象与实例对象 函数对象:将函数作为对象使用,简称为函数对象实例对象:new 函数产生对象,简称为对...

  • 2018-05-18 原型链

    1:普通对象与函数对象 JavaScript分为普通对象和函数对象,通过new Function创建的对象都是函数...

网友评论

      本文标题:函数与对象的关系?

      本文链接:https://www.haomeiwen.com/subject/oviwtxtx.html