JavaScriptJavaScript高级程序设计148页这样描述指针[[prototype]]:当构造函数创建一个新实例后,该实例内部包含一个指针(内部属性),指向构造函数的原型.ECMA-262第五版管这个指针叫做[[prototype]].虽然在脚本中没有标准的方式访问它,但在Firefox,Safari,Chrome中提供了(__proto__).149页第一次出现,书中这样写道:虽然在所有实现中都无法访问[[prototype]],但可以通过isPrototypeOf()方法来确定对象之间是否存在这种关系.从本质上讲,如果[[prototype]]指向调用isPrototypeOf()方法的对象,那么这个方法就返回true那么看下面的代码JavaScriptfunctionSuperType(){this.property=true;}SuperType.prototype.getSuperValue=function(){returnthis;};functionSubType(){this.subproperty=false;}SubType.prototype=newSuperType();SubType.prototype.getSubValue=function(){returnthis.subproperty;};varinstance=newSubType();alert(SuperType.prototype.isPrototypeOf(instance));//truealert(instance.__proto__==SuperType.prototype)//false第一个alert为true按照149页描述的,那么instance是指向SuperType.prototype的,可是我们这样测试的时候却alert出的是false,又表示instance的[[prototype]]并不指向SuperType.prototype.这不矛盾吗?
翻阅古今
繁花不似锦
相关分类