原型对象 & 原型链
原型对象分2种:显式原型和隐式原型。
显式原型就是我们常用的prototype属性,是函数的属性,这个属性默认指向了一个对象“{}”,所以原型本质就是一个对象而已,
这个对象内部有两个属性,一个是constructor,指向当前函数,
另一个是_proto_,指向父类的prototype,
这个引用链最终指向Object的prototype,Object的prototype的_proto_值为null。
隐式原型是实例对象的属性_proto_,也是一个对象,这个对象的_proto_指向构造函数的prototype。
所以原型链就是隐式原型的引用关系。
继承
关于函数
函数也是对象,是Function的实例,function xxx可以理解是new Function() 的快捷写法,Function也是对象,他的大哥就是Object~
使用new Function()的方式创建函数,在chrome上直接报unsafe,不允许使用eval创建代码段。当然这里也就是说明下,正常人没有这么玩的~
var ff = new Function("name","age","sex","console.log('我的名字:'+name+',年龄:'+age+',性别:'+sex);");
网友评论