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

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

 2010-09-14 13:27:00 来源:WEB开发网   
核心提示: 记住这一点后,向对象添加方法将是很容易的事情:只需选择名称,JavaScript : 使用面向对象的技术创建高级 Web 应用程序(5),然后将函数赋给该名称,因此,通过不同对象调用“this”时,它的值也会更改以便指向相应的对象,我通过将匿名函数分别赋给相应的方法

记住这一点后,向对象添加方法将是很容易的事情:只需选择名称,然后将函数赋给该名称。因此,我通过将匿名函数分别赋给相应的方法名称,在对象中定义了三个方法:

var myDog = {
  “name” : “Spot”,
  “bark” : function() { alert(“Woof!”); },
  “displayFullName” : function() {
    alert(this.name + “ The Alpha Dog”);
  },
  “chaseMrPostman” : function() {
    // implementation beyond the scope of this article
  }  
};
myDog.displayFullName();
myDog.bark(); // Woof!

C++/C# 开发人员应当很熟悉 displayFullName 函数中使用的“this”关键字 — 它引用一个对象,通过对象调用方法(使用 Visual Basic 的开发人员也应当很熟悉它,它在 Visual Basic 中叫做“Me”)。因此在上面的示例中,displayFullName 中的“this”的值是 myDog 对象。但是,“this”的值不是静态的。通过不同对象调用“this”时,它的值也会更改以便指向相应的对象,如图 2 所示。

JavaScript : 使用面向对象的技术创建高级 Web 应用程序Figure2“this”随对象更改而更改

function displayQuote() {
  // the value of “this” will change; depends on
  // which object it is called through
  alert(this.memorableQuote);  
}
var williamShakespeare = {
  “memorableQuote”: “It is a wise father that knows his own child.”,
  “sayIt” : displayQuote
};
var markTwain = {
  “memorableQuote”: “Golf is a good walk spoiled.”,
  “sayIt” : displayQuote
};
var oscarWilde = {
  “memorableQuote”: “True friends stab you in the front.”
  // we can call the function displayQuote
  // as a method of oscarWilde without assigning it
  // as oscarWilde’s method.
  //”sayIt” : displayQuote
};
williamShakespeare.sayIt(); // true, true
markTwain.sayIt(); // he didn’t know where to play golf
// watch this, each function has a method call()
// that allows the function to be called as a
// method of the object passed to call() as an
// argument.
// this line below is equivalent to assigning
// displayQuote to sayIt, and calling oscarWilde.sayIt().
displayQuote.call(oscarWilde); // ouch!

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:JavaScript 使用 面向

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