WEB开发网
开发学院网页设计JavaScript JavaScript : 使用面向对象的技术创建高级 Web 应... 阅读

JavaScript : 使用面向对象的技术创建高级 Web 应用程序

 2010-09-14 13:27:00 来源:WEB开发网   
核心提示: var buddy = new Dog(“Buddy“);buddy 所引用的对象将从它的原型继承属性和方法,尽管仅从这一行可能无法明确判断原型来自哪里,JavaScript : 使用面向对象的技术创建高级 Web 应用程序(9),对象 buddy 的原型来自构造函

var buddy = new Dog(“Buddy“);

buddy 所引用的对象将从它的原型继承属性和方法,尽管仅从这一行可能无法明确判断原型来自哪里。对象 buddy 的原型来自构造函数(在这里是函数 Dog)的属性。

在 JavaScript 中,每个函数都有名为“prototype”的属性,用于引用原型对象。此原型对象又有名为“constructor”的属性,它反过来引用函数本身。这是一种循环引用,图 3 更好地说明了这种循环关系。

JavaScript : 使用面向对象的技术创建高级 Web 应用程序

图 3每个函数的原型都有一个 Constructor 属性

现在,通过“new”运算符用函数(上面示例中为 Dog)创建对象时,所获得的对象将继承 Dog.prototype 的属性。在图 3 中,可以看到 Dog.prototype 对象有一个回指 Dog 函数的构造函数属性。这样,每个 Dog 对象(从 Dog.prototype 继承而来)都有一个回指 Dog 函数的构造函数属性。图 4 中的代码证实了这一点。图 5 显示了构造函数、原型对象以及用它们创建的对象之间的这一关系。

JavaScript : 使用面向对象的技术创建高级 Web 应用程序Figure4对象具有其原型的属性

var spot = new Dog(“Spot”);
// Dog.prototype is the prototype of spot
alert(Dog.prototype.isPrototypeOf(spot));
// spot inherits the constructor property
// from Dog.prototype
alert(spot.constructor == Dog.prototype.constructor);
alert(spot.constructor == Dog);
// But constructor property doesn’t belong
// to spot. The line below displays “false”
alert(spot.hasOwnProperty(“constructor”));
// The constructor property belongs to Dog.prototype
// The line below displays “true”
alert(Dog.prototype.hasOwnProperty(“constructor”));

上一页  4 5 6 7 8 9 10  下一页

Tags:JavaScript 使用 面向

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接