【JavaScript】JavaScript的Function与Object浅析
前言:
JavaScript的面向对象是基于原形的,所有对象都有一条属于自己的原型链。Object与Function可能很多看Object instanceof Function , Function instanceof Object都为true而迷惑,所以首先看下对象的实例。
一、JS中所谓的实例
1. 如var a = new A();这样子通常的认为 “a为A函数的实例对象”。
2. new操作的过程是什么?
1.new创建一个空对象{}称为小C
2.然后将A.prototype放置到小C的原型链顶端。即小C.__proto__指向 A.prototype
3.执行A函数,将A中this指向小C,执行结束,如果没有return那么默认返回this引用。
那么new的其中一个的作用便是把A.prototype添加到了a的原型链中。
3. instanceof为js中判断实例的方法,判断的根据就是(例 a instanceof A) 判断a的原型链中是否含有A.prototype。
4. 综上包括常规认识new出来的实例。 所谓o 为fn的实例对象,实际就是指o原型链中含有fn.prototype
二、Object与Function的模糊图解(自己画的很搓)
解释: 所有函数的prototype属性均有constructor指向该函数。
所有对象均有原型链(Object.prototype的原型链为null)。
__proto__(chrome, ff中)代表[[proto]]内置属性。
看过这个图之后应该就明白为什么instanceof是那个的结果了。
三、对象与Object的关系,原型链终结于Object.prototype
Object.prototype的原型链为空(即没有一个原型对象)。因此Object.prototype instanceof Object 为false。
判断类型用typeof , typeof(Object.prototype) === ‘object’.所以不是所有的对象均为Object对象实例。应该是除了Object.prototype除外的所有对象均为Object对象的实例。
本人是初学者 欢迎提看的人各种建议,说不对的地方更是感谢...
转载请注明出处:http://blog.csdn.net/SyKent
http://blog.csdn.net/sykent/article/details/8003343
【JavaScript】JavaScript的Function与Object浅析的更多相关文章
- javascript中的Function和Object
写的很好,理解了很多,特此转发记录 转自:http://blog.csdn.net/tom_221x/archive/2010/02/22/5316675.aspx 在JavaScript中所有的对象 ...
- JavaScript之Function 和 Object 的区别和联系
1.先看一个控制台的输出: instanceof 运算符字面意思是 左边是右边的一个实例吗? 但是这两条输出让人很困惑.Function 是 Object 的实例.Object 也是 Function ...
- Javascript自执行匿名函数(function() { })()的原理浅析
匿名函数就是没有函数名的函数.这篇文章主要介绍了Javascript自执行匿名函数(function() { })()的原理浅析的相关资料,需要的朋友可以参考下 函数是JavaScript中最灵活的一 ...
- JavaScript中你所不知道的Object(二)--Function篇
上一篇(JavaScript中你所不知道的Object(一))说到,Object对象有大量的内部属性,而其中多数和外部属性的操作有关.最后留了个悬念,就是Boolean.Date.Number.Str ...
- javascript中function和object的区别,以及javascript如何实现面向对象的编程思想.
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- javascript中Function与Object
1. 先来一段代码: console.log(Function); // function Function() { [native code] } console.log(Object); // f ...
- JavaScript中的Function(函数)对象详解
JavaScript中的Function对象是函数,函数的用途分为3类: 作为普通逻辑代码容器: 作为对象方法: 作为构造函数. 1.作为普通逻辑代码容器 function multiply(x, y ...
- javascript中的function对象
function对象都是Function的实例: > Object.getOwnPropertyNames(Function) [ 'length', 'name', 'arguments', ...
- 深入理解javascript中的Function.prototye.bind
函数绑定(Function binding)很有可能是你在开始使用JavaScript时最少关注的一点,但是当你意识到你需要一个解决方案来解决如何在另一个函数中保持this上下文的时候,你真正需要的其 ...
随机推荐
- CMake 入门
编写 CMakeLists.txt 首先编写 CMakeLists.txt 文件,并保存在与 main.cc 源文件同个目录下: # 单个源文件 # CMake 最低版本号要求 cmake_minim ...
- xcode import<xx/xx.h> 头文件报错
最近一直在写Android程序,有点久没用xcode,在写一个项目准备把 UI7Kit导进去,将iOS 7的界面适配到低版本的时候,出现了这么一个蛋疼的问题.稍微查了一下,新建项目的时候想先做一个li ...
- Tips for android
对话框样式Activity获得窗口外点击事件(注册Activity时指明theme为adnroid:Theme.Dialog) 在API11之后添加了setFinishOnTouchOutside() ...
- 精美&创意的WordPress新发主题集合
今天我整理了一些精美&创意的WordPress新发主题,它们基本上都融合了最新的设计理念,从简约到响应式,应有尽有. Engo – Smart & Minimal WordPress ...
- 实现带有getMin的栈
题目 实现一个特殊的栈,在实现栈的基础上,再实现返回栈中最小的元素的操作. 要求 pop.push.getMin的时间复杂度是O(1) 可以使用现成的栈类型 思路 如下图所示,在栈结构中,每次pop的 ...
- centos php php-fpm install
好记性不如烂笔头,把自己安装的步骤记录下来 1.下载php-5.2.8以及php-5.2.8-fpm-0.5.10.diff.gz,放到/usr/local/src目录 2.解压php-5.2.8到/ ...
- 使用 XMPP 构建一个基于 web 的通知工具——转
Inserting of file(使用 XMPP 构建一个基于 web 的通知工具.docx) failed. Please try again. http://www.ibm.com/develo ...
- SharePoint咨询师之路:备份和恢复系列三 - 备份web和服务应用程序
本系列包括: 备份服务器场和配置 备份web和服务应用程序 备份内容数据库 备份网站集 备份自定义项 备份web应用程序和服务应用程序一样有三种方式:SharePoint管理中心网站.Windows ...
- resharper 7.x 注册码key
user:dobit sn:G/YgFyekI7EL0oBc5YBWKI5WCi3pwXWP
- vim切换buffer
[vim切换buffer] 命令 ls 可查看当前已打开的buffer 命令 b num 可切换buffer (num为buffer list中的编号) 其它命令: :bn -- buffer列表中下 ...