/*
* 建立一個構造函數,專門用來建立Person對象的
* 構造函數就是一個普通的函數,建立方式和普通函數沒有區別
* 不一樣的是構造函數習慣上首字母大寫
*
*
* 構造函數和普通函數的區別就是調用方式的不一樣
* 普通函數是直接調用,而構造函數須要使用new關鍵字來調用
*
* 構造函數的執行流程;
* 1.馬上建立一個新的對象
* 2.將新建的對象設置爲函數中的this,再構造函數中能夠使用this來引用新建的對象
* 3.逐行執行函數中的代碼
* 4.將新建的對象做爲返回值返回
*
* 使用同一個構造函數建立的對象,咱們成爲一類對象,也將一個構造函數成爲一個類
* 咱們將經過一個構造函數建立的對象,稱爲該類的實例
*
* this的狀況:
* 1.當以函數的形式調用時,this是window
* 2.當以方法的形式調用時,誰調用方法this就是誰
* 3.當以構造函數的形式調用時,this就是新建立的那個對象
*
*/
function Person(name,age,gender){
this.name = name;
this.age = age;
this.gender = gender;
this.sayName = function(){
alert(this.name);
};
}
function Dog(){
}
var per = new Person("孫悟空",18,"男");
var per2 = new Person("玉兔精",16,"女");
var per3 = new Person("奔波霸",38,"男");
var dog = new Dog();
/*console.log(per);
console.log(dog);*/
/*
使用instanceof能夠檢查一個對象是不是一個類的實例
語法:
對象instanceof 構造函數
若是是則返回true,不然返回false
* */
//console.log(per instanceof Person);
//console.log(dog instanceof Person);
/*
全部的對象都是Object的後代
因此任何對象和Object作instanceof檢查時都會返回true
* */
console.log(per instanceof Object);函數
疑問點:參考犀牛書。this