js物件導向

2022-08-23 05:42:11 字數 3161 閱讀 7465

/*

物件導向程式設計的特點

抽象:抓住核心問題

封裝:只能通過物件來訪問方法

繼承:從已有物件上繼承出新的物件

多型:多物件的不同形態

1.物件的組成

方法(行為、操作)——函式:過程、動態的

屬性——變數:狀態、靜態的

* */

//物件的組成

var arr=;

//物件下面的變數:叫做物件的屬性

arr.number=10;

// alert(arr.number);

// alert(arr.length);

//物件下面的函式:叫做物件的方法

arr.test=function()

arr.test();

//建立了乙個空的物件

var obj=new object();

//屬性

obj.name='小明';

//方法

obj.showname=function()

obj.showname();

/*

工廠方式

物件導向中的封裝函式

改成與系統物件類似寫法

首字母大寫

new關鍵字提取

this指向為新建立的物件

當new去呼叫乙個函式:這個時候函式中的this就是建立出來的對 象,而且函式的返回值直接就是this了(隱式返回)

建構函式

用來建立物件的函式,叫做建構函式

new後面呼叫的函式

存在的問題

物件的引用

浪費記憶體

* */

// var obj=new object();

// obj.name='小明';

// obj.showname=function()

// obj.showname();

// var obj1=new object();

// obj1.name='小強';

// obj1.showname=function()

// obj1.showname();

function creatperson(name)

//3.出場

return obj;

} var p1=creatperson('小明');

p1.showname();

var p2=creatperson('小強');

p2.showname();

//提取new

function creatperson(name)

//3.出場

return obj;

} var p1=new creatperson('小明');

p1.showname();

var p2=new creatperson('小強');

p2.showname();

/*

原型:去改寫物件下面公用的方法或者屬性,讓公用的方法或者屬性在記憶體中存在乙份(提高效能)

* */

/*var a=[1,2,3];

var b=[1,2,3];

alert(a==b); //false

*//*

var a=5;

var b=a;

b+=3;

//alert(b);

//基本型別:賦值的時候只是複製

alert(a);

*//*

var a=[1,2,3];

var b=a;

b.push(4);

//alert(b);//[1,2,3,4]

//物件型別:賦值不僅是值的複製,而且也是引用的傳遞

alert(a);//[1,2,3,4]

*//*var a=[1,2,3];

var b=a;

b=[1,2,3,4];

alert(b); //[1,2,3,4]

alert(a); //[1,2,3]

*///比較

var a=5;

var b=5;

//基本型別:值相同就可以

alert(a==b); //true

var a1=[1,2,3];

var b1=[1,2,3];

//物件型別:值和引用都相同才行

alert(a1==b1); //false

var a2=[1,2,3];

var b2=a2;

//物件型別:值和引用都相同才行

alert(a2==b2); //true

原型

/*

原型-prototype

概念 去改寫物件下面公用的方法或者屬性,讓公用的方法或者屬性在記憶體中存在乙份(提高效能)

學習原型

模擬:css中的class

通過原型改寫工廠方式

原則相同的屬性和方法可以加在原型上

混合的程式設計模式

總結物件導向寫法

建構函式加屬性,原型加方法

function 建構函式()

建構函式.原型.方法=function(){}

var 物件1=new 建構函式();

物件1.方法();

* */

/*var arr=[1,2,3,4];

var arr1=[2,2,2,2,2,2,2];

arr.sum=function()

return result;

}arr1.sum=function()

return result;

}alert(arr.sum());

alert(arr1.sum());*/

var arr=[1,2,3,4,5];

var arr1=[2,2,2,2,2,2,2];

array.prototype.sum=function()

return result;

}alert(arr.sum());

alert(arr1.sum());

array.prototype.number=20;

//優先順序高

arr.number=10;

alert(arr.number); //10

js物件導向

物件導向是相對於面向過程而提出的程式設計思想 核心在於通過這種方法的設計出來的程式不再是機械的按照設定的步驟去執行,而是按照需要的步驟去執行。舉個例子 乙個人要吃飯,如果用的面向過程的話就必須執行吃飯前的一切行為,而物件導向則可以跳過之前的環節!建構函式 所謂的工廠方式 用來構造抽象物件,通過呼叫建...

js物件導向

js物件導向 一 什麼是物件 物件可以看成乙個屬性的集合。對像一般有屬性和方法構成,方法的實質是函式,而屬性的實質是變數。二 什麼是物件導向 物件導向可以理解為不需要去了解對像的內部結構,就可以使用它。像我們的date 對像的方法可以獲取和設定時間,但我們並不了解其內部原理。三 物件導向 抽風機 抽...

JS物件導向

一 js物件導向 js是一門指令碼語言,不是物件導向的語言,它沒有類的概念,有物件的概念。物件導向程式設計 oop 和面向過程程式設計 opp 的區別 面向過程以 事件為中心,將完成整個事件拆分成若干個步驟,按照步驟依次執行。物件導向以 事物為中心,完成某個需求需要哪些事物參與,側重點在於每個事物的...