1建構函式是用new建立物件時呼叫的函式,與普通唯一的區別是建構函式名應該首字母大寫。
function
person()
let a =
newperson()
; console.
log(a.age)
;//50
2建構函式可以接受引數
function
person
(age)
let a =
newperson(30
);console.
log(a.age)
;//30
如果沒有引數,可以省略括號
function
person()
//等價於var person1 = new person()
var person1 =
newperson
;console.
log(person1.age)
;//30
如果忘記使用new操作符,則this將代表全域性物件window。通常這種情況下會容易發生很多錯誤。
一定要小心。
function
person()
var person1 =
person()
;//uncaught typeerror: cannot read property 'age' of undefined
console.
log(person1.age)
;
用來判斷物件的型別以及當前物件是否是通過指定建構函式構建而成
function
person()
let a =
newperson()
; console.
log(a instanceof
person);
//true
每個物件在建立時都自動擁有乙個建構函式屬性constructor,其中包含了乙個指向其建構函式的引用。而這個constructor屬性實際上繼承自原型物件,而constructor也是原型物件唯一的自有屬性
function
person()
var person1 =
newperson
;console.
log(person1.constructor === person)
;//true
console.
log(person1.__proto__.constructor === person)
;//true
通過列印person1,你會發現,constructor 是乙個繼承的屬性。雖然物件例項及其建構函式之間存在這樣的關係,但是還是建議使用instanceof來檢查物件型別。這是因為建構函式屬性可以被覆蓋,並不一定完全準確
function
person()
var person1 =
newperson
;person.prototype.constructor =
123;
console.
log(person1.constructor)
;//123
console.
log(person1.__proto__.constructor)
;//123
JavaScript物件導向
方法一 建構函式法 function cat cat.prototype.showname function var cat new cat cat.name tom cat.showname tom 它用建構函式模擬 類 在其內部用this關鍵字指代例項物件。類的屬性和方法,還可以定義在建構函式的...
javaScript物件導向
code 類lecture構造器 使用兩個字串函式,name和teacher function lecture name,teacher 類lecture的方法,生成乙個顯示該課程資訊的字串 lecture.prototype.display function 類schedule的構造器 使用乙個l...
Javascript 物件導向
什麼是物件everything is object 萬物皆物件 物件到底是什麼,我們可以從兩次層次來理解。1 物件是單個事物的抽象。一本書 一輛汽車 乙個人都可以是物件,乙個資料庫 一張網頁 乙個與遠端伺服器的連線也可以是物件。當實物被抽象成物件,實物之間的關係就變成了物件之間的關係,從而就可以模擬...