第一部分[原型prototype]:
 
任何对象及Function方法都有所对应的"prototype"原型!一切基于原型!
 
任何类型对象都有所对应的"constructor"构造器即内置构造函数,任何自定义函数及内置函数都有所对应的原型对象,说到底大家都会继承有: "对象/Object"的原型。
 
注:那怕是用字面量声明的对象var str='ss'; 其构造器使用了function String(){} 则间接使用了String.prototype的原型!
 
str 是用String()函数构造的实例!也就是说String函数的prototype原型就是str实例的间接原型!
 
JavaScript代码
  1. /******** 自定义构造函数 ********/  
  2. function Fun(){}  
  3. var foo=new Fun();  
  4. foo.constructor==Fun()  
  5. //也就是说自定义Fun函数的prototype原型就是foo实例的间接原型!自定义function的原型将继承Object  
  6.   
  7. /******** 实例对象可以直接使用__proto__找到构造器使用的prototype ********/  
  8. foo.__proto__==foo.construtor.prototype;  
  9. //true, 但是,__proto__属性在IE浏览器中一直到IE11才被支持  
  10.   
  11.   
  12. /******** 自定义函数和原型的关系 ********/  
  13. function c(){}  
  14. c.prototype  
  15. ->c {}  
  16. --->constructor: function()  
  17. --->proto: Object  //对象继承的原型  
  18. ============================================================================  
  19. c.constructor      //c本身已经是构造器了  
  20. function Function() { [native code] }  
  21. Function.prototype //构造函数Function的原型,如果没有特殊定义就是空function  
  22. function (){}  
  23. ============================================================================  
  24.   
  25. /******** 布尔值实例 ********/  
  26. true.constructor  
  27. function Boolean(){ [native code] }  
  28. Boolean.prototype  
  29. -> Boolean{ [[PrimitiveValue]]: false}  
  30. --->constructor: function Boolean()  
  31. --->toString: function toString()  
  32. --->valueOf: function valueOf()  
  33. ---> proto : Object   //对象继承的原型  
H5/JS/CSS | 评论(0) | 引用(0) | 阅读(3915)