码迷,mamicode.com
首页 > Web开发 > 详细

JS原型的问题Object和Function到底是什么关系

时间:2016-11-27 06:24:24      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:jce   自身   nbsp   cto   ons   number   span   bsp   构造函数   

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到底是什么关系

标签:jce   自身   nbsp   cto   ons   number   span   bsp   构造函数   

原文地址:http://www.cnblogs.com/bingo10/p/6105697.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!