深入理解javascript原型和闭包(2)——函数和对象的关系
来源:互联网 发布:软件开发公司名字 编辑:程序博客网 时间:2024/06/05 11:24
函数是一种对象,但是函数却不像数组一样——可以说数组是对象的一种,因为数组就像是对象的一个子集一样。但是函数与对象之间,却不仅仅是一种包含和被包含的关系,函数和对象之间的关系比较复杂,甚至有一点鸡生蛋蛋生鸡的逻辑。
一个小例子:
function Fn() { this.name = '小明'; this.year = 1991; } 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原型。
阅读全文
0 0
- 深入理解javascript原型和闭包(2)——函数和对象的关系
- 深入理解javascript原型和闭包(2)——函数和对象的关系
- 深入理解javascript原型和闭包(2)——函数和对象的关系
- 深入理解javascript原型和闭包(2)——函数和对象的关系
- 深入理解javascript原型和闭包(2)——函数和对象的关系
- 深入理解javascript原型和闭包(2)——函数和对象的关系
- 深入理解javascript原型和闭包(2)——函数和对象的关系
- 深入理解javascript原型和闭包(2)——函数和对象的关系
- 深入理解javascript原型和闭包(2)——函数和对象的关系
- 深入理解javascript原型和闭包(2)——函数和对象的关系
- 深入理解javascript原型和闭包(2)——函数和对象的关系
- 深入理解javascript原型和闭包系列 深入理解javascript原型和闭包(2)——函数和对象的关系
- 深入理解javascript原型和闭包(2)--函数和对象的关系
- 深入理解javascript原型和闭包系列 系深入理解javascript原型和闭包(17)——补充:上下文环境和作用域的关系
- 深入理解javascript原型和闭包(18)——补充:上下文环境和作用域的关系
- 深入理解javascript原型和闭包(18)——补充:上下文环境和作用域的关系
- 深入理解javascript原型和闭包(16)——补充:上下文环境和作用域的关系
- 深入理解javascript原型和闭包(18)——补充:上下文环境和作用域的关系
- 日常用的一些命令,包括linux,git
- Java生成二维码(zxing、qrCode)
- Android hdpi ldpi mdpi xhdpi xxhdpi适配详解
- C51 数字和字符串互相转化
- Redis未授权访问漏洞客户修复通知
- 深入理解javascript原型和闭包(2)——函数和对象的关系
- 初学Mybatis时遇到 Error building SqlSession.的原因,看了半天,终于成功解决了
- 关于mybatis generator.xml逆向生成mapper,pojo类,及接口
- 第八周项目二
- 安卓学习
- Android Kotlin 条件控制
- 搜索自己csdn内的blog
- 【SQL Server DBA】日常巡检语句3:特定监控(阻塞、top语句、索引、作业)
- mybatis使用foreach