js物件導向第一天

2021-10-01 08:45:05 字數 2800 閱讀 7775

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 函式 其實就是乙個工具,每個函式都封裝了特定的功能 擁有自己的名字,引數,就像乙個打火機一樣,我們只需要知道如何去使用他,而不需要了解他如何製造 物件 就像乙個工具包,將功能類似的函式封裝到一起,方便我們維護和使用,管理 乙個物件包括其屬性和方法 如 圖書館對圖書進行分類管理,函式就是物件裡面...