面向对象 JavaScript (OOJS) 教程及示例
JavaScript 中的 OOPS 概念是什么?
许多时候,变量或数组不足以模拟现实生活中的情况。JavaScript 允许您创建对象,这些对象可以像真实生活中的对象一样运作。学生或家庭都可以是一个对象,它们拥有各自独特的特征。您可以为对象创建属性和方法,以简化编程。如果您的对象是学生,它将拥有诸如名字、姓氏、ID 等属性,以及 calculateRank、changeAddress 等方法。如果您的对象是一个家庭,它将拥有诸如房间数量、油漆颜色、位置等属性,以及 calculateArea、changeOwner 等方法。
如何创建对象
您可以像这样创建一个对象
var objName = new Object(); objName.property1 = value1; objName.property2 = value2; objName.method1 = function() { line of code }
或者
var objName= {property1:value1, property2:value2, method1: function() { lines of code} };
访问对象属性和方法
您可以像这样访问对象的属性
objectname.propertyname;
您可以像这样访问对象的方法
objectname.methodname();
自己尝试此示例
<html> <head> <title>Objects!!!</title> <script type="text/javascript"> var student = new Object(); student.fName = "John"; student.lName = "Smith"; student.id = 5; student.markE = 76; student.markM = 99; student.markS = 87; student.calculateAverage = function() { return (student.markE + student.markM + student.markS)/3; }; student.displayDetails = function() { document.write("Student Id: " + student.id + "<br />"); document.write("Name: " + student.fName + " " + student.lName + "<br />"); var avg = student.calculateAverage(); document.write("Average Marks: " + avg); }; student.displayDetails(); </script> </head> <body> </body> </html>
OOPS 构造函数
但是,创建这样的对象并非十分有用,因为在这里,您仍需要为不同的学生创建不同的对象。这时,对象构造函数就派上用场了。对象构造函数可以帮助您创建一个对象类型,该类型可以重用以满足各个实例的需求。
自己尝试此示例
<html> <head> <script type="text/javascript"> function Student(first, last, id, english, maths, science) { this.fName = first; this.lName = last; this.id = id; this.markE = english; this.markM = maths; this.markS = science; this.calculateAverage = function() { return (this.markE + this.markM + this.markS)/3; } this.displayDetails = function() { document.write("Student Id: " + this.id + "<br />"); document.write("Name: " + this.fName + " " + this.lName + "<br />"); var avg = this.calculateAverage(); document.write("Average Marks: " + avg + "<br /><br />"); } } var st1 = new Student("John", "Smith", 15, 85, 79, 90); var st2 = new Student("Hannah", "Turner", 23, 75, 80, 82); var st3 = new Student("Kevin", "White", 4, 93, 89, 90); var st4 = new Student("Rose", "Taylor", 11, 55, 63, 45); st1.displayDetails(); st2.displayDetails(); st3.displayDetails(); st4.displayDetails(); </script> </head> <body> </body> </html>
遍历对象的属性
语法
for (variablename in objectname) { lines of code to be executed }
for/in 循环 通常用于遍历对象的属性。您可以为变量取任何名称,但对象名称应与您需要遍历的现有对象相同。
自己尝试此示例
<html> <head> <script type="text/javascript"> var employee={first:"John", last:"Doe", department:"Accounts"}; var details = ""; document.write("<b>Using for/in loops </b><br />"); for (var x in employee) { details = x + ": " + employee[x]; document.write(details + "<br />"); } </script> </head> <body> </body> </html>