JS原型的问题Object和Function到底是什么关系
var F  = function(){};
Objcert.prototype.a = function(){};
Function.prototype.b = function(){};
F 既能访问到a,也能访问到(Object 和 Function也同样,但是所有的实例只能访问到a);F是Object 和 Function 两个的实例,那么Object 和 Function 到底是什么关系?
下面是对Object 和 Function 的了解
F instanceof Object     true
F instanceof Function    true
Object instanceof Function     true
Function instanceof Object     true
Object:
function Object(){ [native code] };
Object.construtor function Function(){ [native code] };
Function:
function Function(){ [native code] };
Function.constructor == Function;       // true
Object == Function ;     // false
可以知道
1.Object 和 Function有相同的构造函数 function Function (){ [native code] }
2.Object 和 Function 不相等
Number instanceof Number     false
Number instanceof Function     true
Number instanceof Object     true
Number.constructor function Function(){ [native code] }
Array instanceof Object     true
Array instanceof Function    true
3.其他基本类型或者非基本类型也都是Object的实例也是Function的实例。
假如这样:
var foo = {};
    F = function(){};
object.prototype.a = "value.a";
Function.prototype.b = "value.b";
console.log(foo.a);       // value.a
console.log(foo.b);      // undefined
console.log(F.a);        // value.a
console.log(F.b);        // value.b
那么:
foo.a的查找路径:foo 自身:没有--->foo.__proto__(Object.prototype):找到value.a
foo.b的查找路径:foo 自身:没有--->foo.__proto__(Object.prototype):没有--->foo.__proto__.__proto__(Object.prototype.__proto__):没有
F.a查找路径:F自身:没有--->F.__proto__(Function.prototype):没有--->F.__proto__.__proto__(Object.prototype):找到value.a
F.b的查找路径:F自身:没有--->F.__proto__(Function.prototype):找到value.b
4.实例对象的constructor属性指向其构造函数。因此Object.contructor === Function, Function.contructor === Function
JS原型的问题Object和Function到底是什么关系的更多相关文章
- Jascript原型链以及Object和Function之间的关系
		
先看一个简单的function变量 function fun1(name) { this.name = name; } console.log("fun1", fun1) 从结果可 ...
 - JavaScript原型链以及Object,Function之间的关系
		
JavaScript里任何东西都是对象,任何一个对象内部都有另一个对象叫__proto__,即原型,它可以包含任何东西让对象继承.当然__proto__本身也是一个对象,它自己也有自己的__proto ...
 - 一张图理清js原型链(通过内置对象的引用关系)
		
很多同学估计写了几年js也没有搞清内置对象之间的原型链关系,鄙人抽空手绘了一张简图,以作参考: 简单说明一下,上图中annonymous()函数相当于是所有函数的根(它本身也是函数),他上面提供了一些 ...
 - JS 究竟是先有鸡还是有蛋,Object与Function究竟谁出现的更早,Function算不算Function的实例等问题杂谈
		
壹 ❀ 引 我在JS 疫情宅在家,学习不能停,七千字长文助你彻底弄懂原型与原型链一文中介绍了JavaScript原型与原型链,以及衍生的__proto__.constructor等一系列属性.在解答了 ...
 - js 原型链和继承(转)
		
在理解继承之前,需要知道 js 的三个东西: 什么是 JS 原型链 this 的值到底是什么 JS 的 new 到底是干什么的 1. 什么是 JS 原型链? 我们知道 JS 有对象,比如 var ob ...
 - 从Object和Function说说JS的原型链
		
ECMAScript规定了两个特殊的内置对象:Object和Function.他们的特殊性在于,他们本身既是对象又是函数,而他们同时也是对象和函数的构造器.这种自己生自己的逻辑显然违反人性,如果还停留 ...
 - Js中Prototype、__proto__、Constructor、Object、Function关系介绍
		
一. Prototype.__proto__与Object.Function关系介绍 Function.Object:都是Js自带的函数对象.prototype,每一个函数对象都有一个显式的proto ...
 - 【转】Js中Prototype、__proto__、Constructor、Object、Function关系介绍
		
一 Prototype.__proto__与Object.Function关系介绍 Function.Object:Js自带的函数对象. prototype,每一个 ...
 - js原型链接(二)和object类的create方法
		
原型链的内部执行方式 <script> function Myclass(){ this.x=" x in Myclass"; } var obj=new Myclas ...
 
随机推荐
- Delphi Json
			
superobject.pas单元对json的解析非常方便, 力荐 下面演示对如下json的解析 { ", "memo": "S.H.E 004" } ...
 - 无光驱在32位windows系统下安装64位windows系统
			
位的系统. 大家都知道,32位的操作系统最多只能支持3.2G的内存,现在内存白菜价,很多人都在原有基础上购入新内存,这样最少也有4G了,为了让内存不浪费,我 们只有升级到64位操作系统.但是很多朋友又 ...
 - 解决VS2015启动时Package manager console崩溃的问题 - Windows PowerShell updated your execution policy successfully, but the setting is overridden by a policy defined at a more specific scope
			
安装VS2015,启动以后,Package manager console崩溃,错误信息如下: Windows PowerShell updated your execution policy suc ...
 - SQL语句  还原未知逻辑名称数据库
			
1. 查看 SQL Server 2000 中 Northwind 数据库文件的逻辑文件名(logical file name)和物理文件路径(operation system file name): ...
 - quick-cocos2d-x :加入学习
			
语法不熟悉, 接口不熟悉. 部分不理解. 超级初学者. 好好学习, 一直在学习 使用Quick-Cocos2d-x搭建一个横版过关游戏 推荐官方的文档和例子 demo
 - [转]hibernateTools工具安装及使用总结(eclipse 3.6)
			
转载地址:http://blueblood79.iteye.com/blog/773177 最近项目采用flex+spring+hibernate的框架开发,之前虽说有多年的Java开发经验了,但是一 ...
 - c#实现邮件发送链接激活
			
2016-08-24 10:09:52 public void MailSend(string email) { MailMessage MyMail = new MailMessage(); MyM ...
 - this关键字简单应用
			
class PersonDemo3 { public static void main(String[] args) { Person p=new Person("张三",22); ...
 - Bootstrap学习(2)--表单
			
Bootstrap里的role属性,增强标签的语义化,提高识别力, 如:<form role="form"> input.select.textarea等元素,在Bo ...
 - spring mvc的拦截器
			
package com.tech.jin.interceptor.method; import java.util.Arrays; import java.util.Map; import java. ...