javascript中对象函数继承的概念

时间:2022-05-29 16:31:41

什么是函数对象?
这个对象既是通常意义上的对象,又可以加上括号直接执行的函数。

产生函数对象的方式有两种:
1、通过function关键字产生:var fn = function(){};
2、实例化Function类:var fn = new Function(){};

产生函数的时候会产生两个对象:
一是函数对象,
二是这个函数会附带一个成员变量prototype,这个prototype会指向一个新开的对象。

Object是*的函数对象,所有其它对象都可以直接或者间接访问其prototype对象。
Object自己也是个对象,它的产生源于它自己。作为对象,它产生于当它作为类时候的实例。

如果一个类要继承另外一个类,那么子类的prototype必须拥有和父类同样的prototype指向的对象。
且不能和父类的prototype是同一个(这样会造成对父类的污染)。

Function,Array,String,RegExp等对象所属的类均继承自Object的类,
因此这些对象都能间接找到Object的prototype,从而拥有object的方法。

如何写一个实现继承的方法?

function extend(subClass,supClass){
var fn = function(){};
fn.prototype = supClass.prototype;
subClass.prototype = new fn();
subClass.prototype.constructor = subClass;
};