自定義對象內容及實例,適合初學者
【自定義對象】
1、基本概念
①對象是擁有一系列無序屬性和方法的集合:
②鍵值對,對象中的數據,是以鍵值對的形式存在,對象的每個屬性和方法,都對應一個鍵名,以鍵取值。
③屬性:描述對象特征的一系列變量,稱為屬性。
④方法,描述對象行為的一系列函數,稱為方法。
2、對象的聲明
var obj ={
key1:value1,
key2:value2,
func1:function(){
}
}
對象中的數據以鍵值對的形式存儲,鍵與鍵值之間用:分隔,多個鍵值對之間用,分隔
對象中的鍵,可以是出了數組,對象以外的任何數據類型,但是,一般我們只有普通變量名作為鍵。
對象的值,可以是任何數據類型,包括數組和對象
使用new關鍵字聲明,var obj=new Object{
obj.key1=value1;
obj.key2=value2;
}
3、對象中屬性和方法的讀寫:
①.運算符,對象名.屬性,對象名.方法
②用過["key"]調用。對象名.["屬性名"] 對象名.["方法名"]();
>>>如果鍵中包含特殊字符,則只能使用第二種方式;
>>>對象中直接寫變量名,默認使用全局變量,如果需要調用對象自身的屬性或者方法,需要使用對象名.屬性,或者this.屬性
this.age+person.name,但是推薦使用this
對象外使用person.name
③刪除對象的屬性和方法,delete 對象名.屬性名/方法名
定義一個對象
var classes = {
className: "HTML5-1705",
studentCount: 27,
students: [{
name: "xxx",
sex: "男",
chinese: 0,
maths: 0,
english: 0,
sum: 0
}, {
name: "xxx",
sex: "男",
chinese: 20,
maths: 30,
english: 40,
sum: 90
}, {
name: "xxx",
sex: "男",
chinese: 9,
maths: 8,
english: 7,
sum: 24
}],
//錄入學員的成績
addStudent: function() {
var name = prompt("請輸入學員姓名:");
var sex = prompt("請輸入學員性別:");
var chinese = parseFloat(prompt("請輸入學員語文成績:"));
var maths = parseFloat(prompt("請輸入學員數學成績:"));
var english = parseFloat(prompt("請輸入學員英語成績:"));
var sum = chinese + maths + english;
var student = {
name: name,
sex: sex,
chinese: chinese,
maths: maths,
english: english,
sum: sum
}
this.students.push(student);
this.students.sort(function(a, b) {
return b.sum - a.sum;
});
},
//展示成績
showStudent: function() {
var arr = this.students;
console.log("\t傑瑞教育HTML5-1705班成績展示");
console.log("序號\t姓名\t性別\t語文\t數學\t英語\t總分");
arr.sort(function(a, b) {
return b.sum - a.sum;
});
arr.forEach(function(item, index) {
console.log((index + 1) + "\t\t" + item.name + "\t" + item.sex + "\t\t" + item.chinese + "\t\t" + item.maths + "\t\t" + item.english + "\t\t" + item.sum);
})
},
//刪除某一條記錄
delStudent: function() {
if (this.students.length <= 0) {
alert("沒有學員數據,無法刪除!");
return;
}
var no = prompt("請輸入要刪除的學員序號:");
if (no < 1 || no > this.students.length) {
alert("序號輸入有誤!請確認學員序號重新輸入!");
return;
}
this.students.splice(no - 1, 1);
},
//查詢某一條記錄
searchStudent: function() {
var no = prompt("請輸入要查詢的學員序號:");
var arr = this.students;
if (no < 1 || no > arr.length) {
alert("查無此人!請確認序號!");
} else {
console.log("查詢完成!查詢到學員信息如下:");
console.log("序號\t姓名\t性別\t語文\t數學\t英語\t總分");
console.log(no + "\t\t" + arr[no - 1].name + "\t" + arr[no - 1].sex + "\t\t" + arr[no - 1].chinese + "\t\t" + arr[no - 1].maths + "\t\t" + arr[no - 1].english + "\t\t" + arr[no - 1].sum);
}
},
//修改任意條信息
updateStudent: function() {
if (this.students.length <= 0) {
alert("沒有學員數據,無法修改!");
return;
}
var no = prompt("請輸入要修改的學員序號:");
if (no < 1 || no > this.students.length) {
alert("序號輸入有誤!請確認學員序號重新輸入!");
return;
}
if (!confirm("您確認修改學員是【" + this.students[no - 1].name + "】嗎?")) {
alert("操作已取消!");
return;
}
var name = prompt("請輸入學員姓名:");
var sex = prompt("請輸入學員性別:");
var chinese = parseFloat(prompt("請輸入學員語文成績:"));
var maths = parseFloat(prompt("請輸入學員數學成績:"));
var english = parseFloat(prompt("請輸入學員英語成績:"));
var sum = chinese + maths + english;
var student = {
name: name,
sex: sex,
chinese: chinese,
maths: maths,
english: english,
sum: sum
}
this.students[no - 1] = student;
}
}
//管理區域,這是控制臺,對整體控制選擇
console.log("\t傑瑞教育成績管理系統");
console.log("1、展示學員信息\t2、學員信息錄入\n3、刪除學員信息\t4、查詢學員信息\n5、修改學員信息\t6、退出系統");
while (true) {
var num = parseInt(prompt("請輸入操作序號"));
var is = false;
switch (num) {
case 1:
classes.showStudent();
break;
case 2:
classes.addStudent();
console.log("信息錄入成功!");
classes.showStudent();
break;
case 3:
classes.delStudent();
console.log("信息刪除成功!");
classes.showStudent();
break;
case 4:
classes.searchStudent();
break;
case 5:
classes.updateStudent();
console.log("信息修改成功!");
classes.showStudent();
break;
case 6:
console.log("系統退出成功!");
is = true;
break;
default:
alert("序號輸入有誤!");
break;
}
if (is) break;
console.log("是否繼續?(輸入N退出系統)");
var isGo = prompt("請輸入序號:N退出系統,其他字符繼續");
if (isGo == "N" || isGo == "n") {
console.log("系統退出成功!");
break;
}
}
自定義對象內容及實例,適合初學者