建構函式的執行流程
將通過該建構函式建立的物件稱為該類的例項
this的情況
function person(name,age)
; console.log
(this)
; //per
}var per = new person
("張三", 18)
; var per1 = new person
("李四", 28)
; per.say()
; //hello
console.log
(per.say===per1.say)
; //false
function person(name,age)
person.prototype.say=function()
; var per = new person
("張三", 18)
; var per1 = new person
("李四", 28)
; per.say()
; //張三
console.log
(per.say===per1.say)
; //true
console.log
(person.prototype===per.__proto__)
; //true
console.log
(person.prototype===per.__proto__===per1.__proto__) //false
console.log
(person.prototype.constructor===person) //true
console.log
(per instanceof person)
; //true
console.log
(person.prototype)
; //say()
constructor()
console.log
(person.prototype.prototype)
; //undefined
console.log
(per.__proto__)
; //say()
constructor()
console.log
(per.__proto__.__proto__)
; //原型的constructor
(),裡面有hasownprototype()
console.log
(per.__proto__.__proto__.__proto__)
;//null
function myclass()
myclass.prototype.name = "張三";
var mc = new myclass();
// 使用in檢查物件中是否含有某個屬性時,如果物件中沒有,但原型中有,也會返回true
console.log("name" in mc); //true
// 只能找自身的屬性,如果沒有則返回false
console.log(mc.hasownproperty("name")); //false
**通過tostring(),不同的瀏覽器列印效果不同**
function person(name,age)
person.prototype.tostring=function()
var per = new person
("張三",18)
; var per1 = new person
("李四",20)
; console.log
(per.tostring()
);
console.log
(per1.tostring()
);console.log
(per)
; console.log
(per1)
;
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建構函式
1 經典例項,涵蓋全域性變數,區域性變數,變數宣告提公升,物件,上下文,閉包等知識 var num 4 var obj this.num 2 num 3 alert num var fn obj.fn window.num 8 num nan num 4 fn function alert num ...
JS建構函式
建立乙個物件可以字面量建立或建構函式建立 字面量建立物件例如 字面量建立物件 var p1 但如果需要建立多個同一型別 屬性和方法都相同 的物件,使用字面量不合適,可以使用建構函式建立 宣告建構函式的語法和普通函式相同,但是建構函式的函式名首字母大寫 function student name,st...