一,Object對(duì)象基礎(chǔ)
1. 對(duì)象是什么?
對(duì)象是一些數(shù)據(jù)和方法的集合,他們都是對(duì)象的屬性
2. 對(duì)象的建立和格式?
- 通過(guò)Object關(guān)鍵字:
var obj = new Object();
- 通過(guò)字面聲明:
var student = { name='zyc', age='24};
- 借助函數(shù)聲明(方便多次使用):
function person(name) {
this.name = name;
}
var person1 = Person("zyc");
- 調(diào)用對(duì)象中的屬性:
student.name 或者 student[name]
- 添加與刪除屬性:
student.age = 18;
delete student.age;
4. ‘this’是什么?
- this顧名思義,指的是代碼所運(yùn)行時(shí)所在的對(duì)象,比如在student對(duì)象中定義一個(gè)getName的函數(shù)屬性,那么其運(yùn)行時(shí)候(student.getName())時(shí)的this就是student對(duì)象,對(duì)于直接在最外層的代碼來(lái)說(shuō),其對(duì)象是windows(運(yùn)行在網(wǎng)頁(yè)端)
- this的作用就是幫助在相對(duì)復(fù)雜的代碼環(huán)境中,代碼可以正確獲取需要的對(duì)象屬性,比如有兩個(gè)同名的屬性在不同對(duì)象,那么修改this可以幫助獲取需要的屬性
二,JSON簡(jiǎn)介
1. JSON是什么?和JavaScript有啥關(guān)系?
- JSON 是一種基于文本的,有著和JavaScript中Object類(lèi)似語(yǔ)法的數(shù)據(jù)存儲(chǔ)和傳輸格式
- JSON和JavaScript并無(wú)直接關(guān)系,JSON可以被多種語(yǔ)言使用
2. JSON的格式范例?
{"squadName": "Super hero squad",
"homeTown": "Metro City",
"formed": 2016,
"secretBase": ['hahaha','lalala','lueluelue']}
注意,JSON中屬性和字符串都要用雙引號(hào),單引號(hào)不可以
三,object中的apply,bind和call
- call是Function中一個(gè)方法,可以把后邊括號(hào)內(nèi)的第一個(gè)對(duì)象變成前邊調(diào)用的方法的運(yùn)行環(huán)境this
- apply和call作用相同,不過(guò)在繼續(xù)把后續(xù)參數(shù)傳給方法時(shí),call一個(gè)個(gè)傳,apply將其作為一個(gè)數(shù)組整體傳,如:
var student = {name : 'xiaoming', age : '18', hobby : 'study'}
var num = {num1:1,num2:2};
getName = function(num1,num2){return this.name+num1+num2};
getName.call(student,num.num1,num.num2);
getName.apply(student,[num.num1,num.num2]);
- bind和call作用與傳參方式一樣,但是使用bind的方法不會(huì)被立刻執(zhí)行,之后需要另行調(diào)用
- 嚴(yán)格模式顧名思義,會(huì)對(duì)this更嚴(yán)格,xx.call(),xx.call(null),xx.call(undefined),普通模式下this都是windows,嚴(yán)格模式下就是undefined,null和undefined