1)物件導向?
物件導向是一種程式設計思想。
類:具有相同特徵的一類事物,js中有很多內建類,我們也可以自己建立類
物件:通過類建立出物件,是具體的,js中有很多的物件,我們也可以自己去建立物件
2)類?
js中提供很多類,如number string, boolean, object, math, date, ....
通過類建立出物件,使用new運算子來建立,如 var a=new array()
new乙個類就可以建立出乙個物件
3)物件?
物件中有很多的靜態特徵,通常使用變數來描述,此時變數也叫屬性。
物件中有很多的動態特徵,通常使用函式來描述,引時函式也叫方法(屬性)。
物件是屬性的無序集合(操作(crud)集合)。
4)三條定律,兩條鏈?
定律一:一切都是物件
定律二:所有的物件都是通過類來建立的
定律三:物件是屬性的無序集合
兩條鏈:作用域鏈,原型鏈
1)訪問物件中的屬性
點語法:物件名.屬性名
中括號的形式:物件名【】,需要在中括號內加上引號。
2)新增屬性
點語法:物件名.屬性名=屬性值
中括號的形式:物件名【】=屬性值,需要在中括號內加上引號。
注意:如果新增了同名的屬性,同名屬性將會被覆蓋。
每乙個物件的屬性都有一些特徵:
configurable:是否可以被刪除,預設是true,可以刪除
writable: 是否可以修改屬性值,預設是ture,可以修改
enumerable:是否可以列舉,預設是ture,可以列舉
value:表示屬性值,沒有給定屬性值,屬性值是undefiend
設定物件的屬性(精細化設定物件的屬性)
object.defineproperty(物件名,"屬性名", )
object.defineproperty() 方法會直接在乙個物件上定義乙個新屬性,或者修改乙個物件的現有屬性, 並返回這個物件。
object是乙個類 類.*** 說明***是類上的乙個屬性(靜態屬性)
defineproperty是object這個類上的靜態屬性 define是定義的意思 property
注意:在修改屬性值和屬性特徵時:如果這個屬性不存在,表示新增了乙個屬性並精細化設定了
刪除屬性:直接delete 屬性名。注意:加var不能被刪除,不加var的可以被刪除(winmdow物件)
遍歷物件的屬性:
用兩種方式遍歷物件的屬性:
for in
for(item in 物件名)
object.keys()
console.log(wc[item])
in和hasownproperty的區別:
hasownproperty:方法會返回乙個布林值,指示物件自身屬性中是否具有指定的屬性(也就是,是否有指定的鍵)。
in判斷某乙個屬性是否屬於某一物件
區別:hasownproperty:(只會在自己原型中去找)
in先在自己內部找,如果找不到,會去它的原型物件中找。
把函式當做乙個類(構造器),目的是建立物件
函式現在有兩個角色:普通函式:執行上下文。類:(構造器,建構函式):new
把函式當做乙個類和乙個普通的物件有什麼區別?
new在執行**時會建立乙個物件,然後把this指向這個物件
最後把物件的位址返回
注意:通常類名的首字母會大寫
來練習乙個,自己寫乙個試試
function creatperson(name,age),{},{}]
物件的形式:{}
json資料的語法:
1,由鍵值構成
2,鍵值對與鍵值對之間使用逗號隔開
3,{} 放物件 放陣列
4,鍵也必須使用雙引號包起來,不能少
5,值可以是數字,字串,布林值,陣列,物件,null, 但是不能是函式
json通常的寫法有兩種:一定要記住json的值不能是函式
陣列的形式:[{},{},{}],裡面是物件
json有兩種形式:
字串
本身是乙個字串,通過單引號引起來;
var str=''
json物件
比較特殊的js物件
var obj=
json物件用stringify轉成json字串:
let str=window.json.stringify(obj);
json字串用parse轉成json物件:
let obj=window.json.parse(str);
json物件的修改:
console.log(stu[0]);//訪問陣列第乙個元素
console.log(stu[0].name) //訪問陣列第乙個元素中那個物件的第乙個屬性值
console.log(stu[0]["name"]) //訪問陣列第乙個元素中那個物件的第乙個屬性值
stu[0].score="100";
console.log(stu[0])
delete stu[0].score;
console.log(stu[0])
//先用for或者for each來遍歷陣列,在用for in 來遍歷內層的物件
for(var i=0;i//這一步能遍歷出裡面的每乙個陣列物件
for(var item in stu[i]){
console.log(item+"*****"+stu[i][item])
js 物件導向程式設計 第一天
有function checkname 類似var checkname function 以上的兩個 寫法都差不多 缺點 如果別人寫了的 方法名跟你的一樣,先寫的方法會被覆蓋掉 var checkobject checkemai function 以上寫法類似於json 使用 checkobject...
JAVA物件導向第一天
1 什麼是結構化程式設計 在程式早期,程式用流程圖和自頂向下的方法設計。採用這種設計方法,程式設計師會將乙個大的問題分解成更小的任務,然後每個更小的任務編寫乙個過程 或函式 最後,程式設計師會編寫乙個主程式來啟動程式流程,隨後根據程式流程走向,呼叫想要的其他過程。這種型別的程式設計被稱為結構化程式設...
物件導向思想(第一天)
01 函式 其實就是乙個工具,每個函式都封裝了特定的功能 擁有自己的名字,引數,就像乙個打火機一樣,我們只需要知道如何去使用他,而不需要了解他如何製造 物件 就像乙個工具包,將功能類似的函式封裝到一起,方便我們維護和使用,管理 乙個物件包括其屬性和方法 如 圖書館對圖書進行分類管理,函式就是物件裡面...