首页 > 编程语言 > 详细

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

时间:2015-12-20 22:34:18      阅读:283      评论:0      收藏:0      [点我收藏+]

原文来自http://www.cnblogs.com/wangfupeng1988/p/3978035.html

上文(理解JavaScript原型和闭包(1)--一切都是对象)已经提到,函数就是对象的一种,因为通过instanceof函数可以判断。

var fn=function(){};

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

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

先看一个例子:

function Fn(){

  this.name="xxx";

  this.year=1988;

}

var fn1=new Fn();

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

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

 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原型之后就明白了,下一篇接着学习。

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

原文:http://www.cnblogs.com/webljx/p/5061909.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!