多態(tài)
繼承
封裝
編程語言角度
編程思維角度 創(chuàng)建對象
知識點(diǎn):
a)面向?qū)ο蟮母拍?以及與面向過程對比(了解)
b)對象自變量的認(rèn)識以及屬性的使用方式
i. 對象的屬性增刪改查
1躯泰、創(chuàng)建一個(gè)空對象
var per1 = new Object();
2、把該對象所需要的屬性岂傲、方法添加進(jìn)去
per1.name = "曹勇";
console.log(per1.name);
per1.gender = "男";
給新對象添加方法(函數(shù) )
per1.manager = function () {
alert("保持安靜");
};
per1.name = "西門大官人";
per1.age = 12;
console.log(per1.age);
刪除對象中的屬性:delete+對象屬性名
delete per1.age;
console.log(per1.age);
對象名.方法名():調(diào)用對象下的方法
per1.manager();
如何區(qū)分:函數(shù)\方法
當(dāng)函數(shù)屬于一個(gè)對象時(shí),該函數(shù)就是這個(gè)對象下的一個(gè)方法子檀,通過方法名來調(diào)用該函數(shù)
如何區(qū)分:變量\屬性
當(dāng)變量屬于某一個(gè)對象時(shí)镊掖,該變量就是這個(gè)對象下的一個(gè)方法,通過屬性名來調(diào)用該變量
把per1對象交給per2,這樣per2就和per1一致
var per2 = per1;
console.log(per2.name);
console.log(per2.age);
per2.name = "張倩";
console.log("修改后的p2name屬性"+per2.name);
因?yàn)閜er2和per1所指向的是同一塊內(nèi)存褂痰,所以per2修改了這塊內(nèi)存的值亩进,per1再來訪問時(shí),就會獲取到新的值
console.log("per1的name屬性值" + per1.name);
ii. 對象屬性缩歪、方法的使用(包括用for in來遍歷)
iii. 點(diǎn)語法和[]訪問屬性的區(qū)別
c)
創(chuàng)建對象的方式(重點(diǎn))
i. 普通方式
ii. 工廠模式
a) 面向?qū)ο蟮母拍?以及與面向過程對比(了解) 萬事萬物皆對象.
幾個(gè)重要的概念:類 對象:屬性归薛、方法 封裝 繼承 多態(tài)
b) 對象自變量的認(rèn)識以及屬性的使用方式
i. 對象的屬性增刪改查
ii. 對象屬性、方法的使用(包括用for in來遍歷)
iii. 點(diǎn)語法和[]訪問屬性的區(qū)別
c) 創(chuàng)建對象的方式(重點(diǎn)) 三種方式
i. 普通方式
直接創(chuàng)建
1 創(chuàng)建一個(gè)空對象
var per1 = new Object();
// 2、把該對象所需要的屬性主籍、方法添加進(jìn)去
per1.name = "楊笑談";
console.log(per1.name);
per1.gender = "男";
// 給新對象添加方法(函數(shù) )
per1.manager = function () {
alert("噓");
};
2 使用字面量創(chuàng)建對象
var per1 = {
name: "張三",
age: 12,
hobby: "打球",
sayHi: function () {
alert("你好");
}
}
3 工廠模式
function CreatPerson (name, age) {
// 1.1习贫、 創(chuàng)建一個(gè)新的空對象
var person = new Object();
// 1.2、給空對象添加屬性和方法
person.name = name;
person.age = age;
person.sayHi = function () {
return name + age;
};
// 1.3千元、把創(chuàng)建好的對象返回出去
return person;
}
2苫昌、調(diào)用構(gòu)造函數(shù)創(chuàng)建對象
var per1 = CreatPerson("張三", 23);
console.log(per1.name);
per1.sayHi();
var per2 = CreatPerson("李四", 56);
通過instanceof可以判斷出該對象是否是通過某個(gè)函數(shù)創(chuàng)建出來的。
返回值為false幸海,說明系統(tǒng)無法判斷通過這種方法創(chuàng)造出來的對象和構(gòu)造函數(shù)之間的關(guān)系
console.log(per2 instanceof CreatPerson);
console.log(per2.name);
使用new+構(gòu)造函數(shù)方法創(chuàng)建出來的對象可以確定對象是否是通過某個(gè)函數(shù)創(chuàng)建出來的
var arr = new Array();
// 返回true
console.log(arr instanceof Array);