美文网首页
js原型和闭包(2)——函数和对象的关系

js原型和闭包(2)——函数和对象的关系

作者: 为君梳作半面妆 | 来源:发表于2017-10-15 12:31 被阅读0次

深入理解javascript原型和闭包(2)——函数和对象的关系

文(理解javascript原型和作用域系列(1)——一切都是对象)已经提到,函数就是对象的一种,因为通过instanceof函数可以判断。

varfn =function() { };

console.log(fninstanceofObject);//true

对!函数是一种对象,但是函数却不像数组一样——你可以说数组是对象的一种,因为数组就像是对象的一个子集一样。但是函数与对象之间,却不仅仅是一种包含和被包含的关系,函数和对象之间的关系比较复杂,甚至有一点鸡生蛋蛋生鸡的逻辑,咱们这一节就缕一缕。

还是先看一个小例子吧。

functionFn() {

this.name = 'caroly';

this.year = 1991;

}

var fn1 =new Fn();

上面的这个例子很简单,它能说明:对象可以通过函数来创建。对!也只能说明这一点。

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

但是不好意思,这个——真的——是一种——“快捷方式”,在编程语言中,一般叫做“语法糖”。

做“语法糖”做的最好的可谓是微软大哥,它把他们家C#那小子弄的不男不女从的,本想图个人见人爱,谁承想还得到处跟人解释——其实它是个男孩!

话归正传——其实以上代码的本质是:

var obj = {a:10,b:20};

var arr = {5,'x',true};

//var obj = { a: 10, b: 20 };

//var arr = [5, 'x', true];

var obj = new Object();

obj.a = 10;

obj.b = 20;

var arr = new Array();

arr[0] = 5;

arr[1] = 'x';

arr[2] = true;

而其中的 Object 和 Array 都是函数:

console.log(typeof(Object));//function

console.log(typeof(Array));//function

所以,可以很负责任的说——对象都是通过函数来创建的。

现在是不是糊涂了—— 对象是函数创建的,而函数却又是一种对象——天哪!函数和对象到底是什么关系啊?

别着急!揭开这个谜底,还得先去了解一下另一位老朋友——prototype原型。

相关文章

  • js原型和闭包(2)——函数和对象的关系

    深入理解javascript原型和闭包(2)——函数和对象的关系 文(理解javascript原型和作用域系列(1...

  • 深入理解javascript原型和闭包(完结)

    深入理解javascript原型和闭包(1)——一切都是对象 深入理解javascript原型和闭包(2)——函数...

  • JS博客

    JS构造函数及new运算符 JS原型对象和原型链 函数作用域和作用域链 干货分享:让你分分钟学会JS闭包 深入理解...

  • js插件通用写法

    主要思想:1.创建js对象 -- 混合使用构造函数和原型模式2.闭包防止全局污染代码 例子如下:没有具体实现什么,...

  • php之闭包函数(Closure)

    php闭包函数(Closure) JS闭包 js和php闭包使用和区别

  • js基础

    js三座大山:原型和原型链 作用域和闭包 异步和单线程引用类型:对象 数组 函数 因为指针引用的是一个空间 所以叫...

  • Javascript高级话题

    面向对象、作用域、闭包、设计模式等。 1. 常见的JS类定义方式 构造函数原型 对象创建 原型法是通用老方法,对象...

  • 函数对象和闭包

    函数对象和闭包 一) 函数对象 示例: 二)函数嵌套 三)闭包函数

  • 原型链

    原型链 this指向 作用域和预解析 new关键字 闭包 继承 JS 规定,所有对象都有自己的原型对象(proto...

  • 19_怎么理解js中的原型链?如何实现继承?实现继承常用的方式有

    一、理解js的原型 1、函数和对象的关系 函数也是对象的一种,通过instanceof可以判断出来。但是函数和对象...

网友评论

      本文标题:js原型和闭包(2)——函数和对象的关系

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