js你懂嗎?今天一起來學習js高階
JS高階學習之路day1
物件:特指一個具有特徵和行為的東西
特徵—》屬性
行為—》方法
三種建立物件的方式
1.字面量的方式
2.呼叫系統的建構函式
3.自定義建構函式方式
//例項物件
var per1={
name:“卡卡西”,
age:20,
sex:“男”,
eat:function(){
console.log(“吃臭豆腐”);
},
readBook:function(){
console.log(“親熱”);
}
};
//呼叫系統函式
var per2=new Object();
per2.name=“大蛇丸”;
per2.age=30;
per2.sex=‘男’;
per2.eat=function(){
console.log(“吃榴蓮”);
};
per2.play=function(){
console.log(“這個小蛇真好玩”);
};
console.log(per2 intanceof Object);
//自定義建構函式
function Person(name,age,sex){
this.name=name;
this.age=age;
this.sex=sex;
this.play=function(){
console.log(“打遊戲”);
};
}
var per=new Person(“壓抑”,18,“男”);
console.log(per intanceof Person);
開闢空間建立物件
把this設定為當前的物件
設定物件的屬性和方法的值
把this值返回
工廠模式
function createObject(name,age){
var obj=new Object();
this.name=name;
this.age=age;
this.sayHi=function(){
console.log(“您好”);
};
return obj;
}
工廠模式
函式名
有new
有返回值
new之後的物件是當前的物件
直接呼叫函式建立物件
自定義建構函式
函式名是大寫
沒有new
沒有返回值
this是當前的物件
通過new的方式來建立物件
例項物件和建構函式之間的關係:
1.例項物件是通過建構函式來建立的–建立的過程叫例項化
2.如何判斷物件是不是這種資料型別?
1)通過構造器的方式 例項物件.構造器==建構函式名字
dog.constructor==函式名字
2)物件instanof建構函式名字
dog.instanceof 函式名字
通過原型來新增方法,解決資料共享,節省記憶體空間
函式名.prototype.屬性=function(){執行語句 };
複習原型
例項物件中有兩個屬性(通過建構函式來獲取)
建構函式中並沒有sex和age屬性
原型
例項物件有個屬性,proto,也是物件,不是標準屬性
(瀏覽器使用)
建構函式有個屬性,prototype,也是物件,不是標準屬性(程式設計師使用)
原型----》_proto_或者prototype都是原型物件
作用:共享資料,節省記憶體空間
建構函式可以例項化物件
裡面有一個屬性叫prototype,是建構函式的原型物件
而原型物件prototype中有一個construtor構造器,指向的就是所在的建構函式。
例項物件的原型物件(proto)指向的是該建構函式的原型物件,有這個__proto__的肯定就是例項物件
建構函式的原型物件(prototype)中的方法是可以被例項物件直街訪問