Inheritance.aspx 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title>Inheritance</title>
  5. </head>
  6. <body>
  7. <form id="Main" runat="server">
  8. <asp:ScriptManager runat="server" ID="scriptManager" />
  9. <script type="text/javascript" src="Inheritance.js"></script>
  10. </form>
  11. <h2>Inheritance</h2>
  12. <p />
  13. <div>
  14. This file contains two classes defined in script: Person and Employee, where
  15. Employee derives from Person.
  16. <p />
  17. Each class has private fields, and public properties and methods. In addition,
  18. Employee overrides the toString implementation, and in doing so, it uses the
  19. base class functionality.
  20. <p />
  21. This example puts the Person class in the "Demo" namespace.
  22. <p />
  23. </div>
  24. <div>
  25. <ul>
  26. <li><a href="#" onclick="return OnTestNewClick()">Object Creation</a></li>
  27. <li><a href="#" onclick="return OnTestDisposeClick()">Object Dispose</a></li>
  28. <li><a href="#" onclick="return OnTestPrivatePropertyClick()">Public vs. Private Properties</a></li>
  29. <li><a href="#" onclick="return OnTestInstanceMethodClick()">Instance Methods</a></li>
  30. <li><a href="#" onclick="return OnTestOverrideMethodClick()">Overriden Methods</a></li>
  31. <li><a href="#" onclick="return OnTestInstanceOfClick()">Instance Of Check</a></li>
  32. </ul>
  33. </div>
  34. <script type="text/javascript" language="JavaScript">
  35. function GetTestPerson()
  36. {
  37. return new Demo.Person('Jane', 'Doe', '[email protected]');
  38. }
  39. function GetTestEmployee()
  40. {
  41. return new Demo.Employee('John', 'Doe', '[email protected]', 'Platform', 'Programmer');
  42. }
  43. function OnTestNewClick() {
  44. var aPerson = GetTestPerson();
  45. alert(aPerson.getFirstName());
  46. alert(aPerson);
  47. alert(Object.getType(aPerson).getName());
  48. var testPerson = GetTestPerson();
  49. alert(testPerson.getFirstName());
  50. alert(testPerson);
  51. return false;
  52. }
  53. function OnTestDisposeClick() {
  54. var aPerson = GetTestEmployee();
  55. alert(aPerson.getFirstName());
  56. aPerson.dispose();
  57. }
  58. function OnTestPrivatePropertyClick() {
  59. var aPerson = GetTestEmployee();
  60. alert('aPerson._firstName = ' + aPerson._firstName);
  61. alert('aPersona.getFirstName() = ' + aPerson.getFirstName());
  62. return false;
  63. }
  64. function OnTestInstanceMethodClick() {
  65. var aPerson = GetTestEmployee();
  66. aPerson.sendMail('Hello', 'This is a test mail.');
  67. return false;
  68. }
  69. function OnTestOverrideMethodClick() {
  70. var testPerson = GetTestEmployee();
  71. alert(testPerson);
  72. return false;
  73. }
  74. function OnTestInstanceOfClick() {
  75. var aPerson = GetTestEmployee();
  76. if (Demo.Employee.isInstanceOfType(aPerson)) {
  77. alert(aPerson.getName() + ' is an Employee instance.\nTitle property: ' + aPerson.getTitle());
  78. }
  79. return false;
  80. }
  81. </script>
  82. </body>
  83. </html>