//寫乙個建構函式 用來建立學生物件
//屬性:姓名 年齡 身高 體重
//行為:學習 吃飯 看片 把妹
function
student
(name) }
//如果建構函式沒有引數,那麼在呼叫的時候小括號可以省略
varstu =
newstudent
("胡一天");
stu.
study();
varstu1 =
newstudent
("沈悅");
stu1.
study();
//上面兩個物件的實際情況如下圖:
每個學生物件的study函式都是同一句**,那同樣的**在記憶體裡面佔兩份就不合適。因為封裝函式是為了復用,所以這個情況就要考慮封裝函式
//如果在建構函式內部定義函式,那麼每次建立物件時都會重新建立該函式
//但是函式內部**完全相同就造成了資源浪費
//為了解決這個問題,就要讓所有的物件共用乙個方法
//在建構函式外部定義好該函式,將該函式賦值給建構函式內的方法
//使用這種方式寫好的方法中的this指向的是呼叫該方法的物件
//this 誰呼叫就是誰
//如果沒有物件呼叫則預設是window呼叫,即this預設指向window
//使用這種方式存在的問題
//1、全域性變數增多造成汙染
//2、**結構混亂,不易維護
JS高階之建構函式
先建立object物件,再動態新增屬性 方法 起始時不確定物件內部資料 語句太多 var a newobject p.name tom p.age 18p.setname function name p.setname jack console.log p.name,p.age script 使用 ...
JS高階 原型 建構函式的繼承
定義父類的person的建構函式 function person name 定義父類person的原型 person.prototype.sayname function 定義子類建構函式student function student name,age 子類繼承父類原型 子類student原型繼承...
一 js高階 2 建構函式 原型物件
3.建構函式用new建立例項的過程 1 建立乙個空物件 2 將this 指向例項,將函式的作用域賦給空物件 3 建立新物件 4 返回新物件 使用建構函式不僅 更加簡潔,更重要的是能夠識別物件的型別了 4.建構函式的例項的關係 1 例項的constructor 建構函式 console.log p1....