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 ...
随机推荐
- linux 配置 ftp
1.检测是否安装ftp 2.apt-get install 安装 (如果安装失败 执行apt-get install update<如果update失败 配置dns让自己的服务器 可以ping ...
- Mac下输入法总是默认中文,怎么设置成英文的?
最近一同事在DreamWeaver里,写CSS样式的时候,默认总是中文,切到别的窗口,再切回来,就变成中文了,总要按一下切换键,时间长了特别烦人. 在网上找了一些方法,最后找到一个有效的. 总结一下就 ...
- linux shell脚本使用结构化命令(2)
一.for命令 二.while命令 三.until命令 1.for命令基本格式 for var in list do commands done oracle@suse:~/testshell> ...
- 一次APP测试的感悟
项目经理担责任.产品担责任.测试只需要把测试中发现的问题展示出来.如实反应问题.谁担责任谁有权利决定上不上线.所以他们直接绕过了测试.APP的上线让我学到了很多东西,见识了很多东西,也感悟了很多.这是 ...
- Hibernate 基础配置及常用功能(一)
本来是想等全部框架测试完以后再统一发布的,但是随着测试的一点点增加感觉把需要叙述的东西放在一起终将会是一场灾难.所以还是打算分成几章来描述,其中还包括一些有待解决的问题.短期很难腾出时间来仔细阅读Hi ...
- 什么是Unicode letter
起因:从一段代码说起 using System; using System.Collections.Generic; using System.Linq; using System.Text; usi ...
- java ide 导出可运行jar包
常常会用到写个jar搬到其他地方运行的情况,这里做个笔记记录下如何利用eclipse或者idea导出jar. 导出jar包最好的方式个人认为是把依赖的包都打包进目标jar,这样一个jar可以很happ ...
- 【转】The import javax.servlet cannot be resolved
转载地址:http://www.2cto.com/kf/201212/176868.html 今天将别人的项目导入eclipse之后,出现了“The import javax.servlet cann ...
- angular 后台交换实例
<!DOCTYPE html><html lang="en" ng-app="myApp"><head> <meta ...
- Instant Complexity - POJ1472
Instant Complexity Time Limit: 1000MS Memory Limit: 10000K Description Analyzing the run-time comple ...