1. 程式人生 > >javascript中的屬性註意事項

javascript中的屬性註意事項

color 改變 inf 對象 style 屬性 class 類型 com

1.函數原型prototype設置的對象是只讀類型,所以不能修改(即棧只讀)。但是我們常常可以看到它被“修改‘’了。若對象中定義的屬性和原型中屬性一樣,優先使用自定義屬性。

例如代碼:

//原型 類似於父類
        function students() {
            this.major= 數學;
            this.studentsName = [張三,李四,王五];
        }
        var myStudents = new students(); //必須建立實例對象 才能被其他對象‘繼承‘;
        
//建立對象 function teacher(sub) { } teacher.prototype = myStudents;//設置原型 var mathTeacher = new teacher(); //創建對象 mathTeacher.studentsName[0] = 趙六; var englishTeacher = new teacher(); //創建對象 englishTeacher.major = English; alert(
studentsName= + mathTeacher.studentsName + " " + major= + mathTeacher.major);//輸出結果 alert(studentsName= + englishTeacher.studentsName + " " + major= + englishTeacher.major);//輸出結果

輸出結果為:

技術分享圖片技術分享圖片

但是它們修改的方式是不一樣的。

 mathTeacher.studentsName[0] = ‘趙六‘;

studentsName指向的數組不能變,但是數組成員可以變。例如studentsName指向三年二班,你就不能讓它重新指向四年一班。但是三年二班的學生改變了,studentsName還是指向三年二班沒有改變。(這涉及棧堆問題)

englishTeacher.major = ‘English‘;

這並沒有改變原型中的major,只是對象新建了一個和原型中的major同名的屬性,根據原則優先使用自定義屬性。

javascript中的屬性註意事項