JS 物件導向

2021-08-13 01:03:04 字數 3996 閱讀 9149

一、

js物件導向的**與結論

window.οnlοad=functionready()

function a()

function b()

arr.b();

}function c()

arr.c=function ()

arr.c();

}function d()

obj.showqq=function ()

obj.showname();

obj.showqq();

}function e()

obj.showqq=function ()

//出廠

return obj;

}varmy=create("gxy","1419178613");

my.showname();

my.showqq();

varyou=create("你的名字","1234567890");

you.showname();

you.showqq();

/**缺點

*1.沒有new關鍵字,不規範

*2.每個物件例項的方法都是各自的方法,資源浪費

*/alert(my.showname==you.showname);

}function f()

this.showqq=function ()

}//用new關鍵字修飾乙個方法,方法中的this關鍵字將從window物件指向系統自動新建的object物件,並返回這個object物件

var my=newcreate("gxy","1419178613");

my.showname();

my.showqq();

var you=newcreate("你的名字","1234567890");

you.showname();

you.showqq();

}function g()

this.showqq=function ()

}var my=newcreate("gxy","1419178613");

var you=newcreate("你的名字","1234567890");

my.showall=function ()

you.showall=function ()

my.showall();

you.showall();

//使用原型後,create的兩個例項my、you想要新增showall方法,只需給父物件create建立一遍

function create(name,qq)

this.showqq=function ()

}create.prototype.showall=function ()

var my=newcreate("gxy","1419178613");

var you=newcreate("你的名字","1234567890");

my.showall();

you.showall();

//不使用原型建立的物件方法不相等,浪費資源

alert(my.showname==you.showname);

//使用原型建立的物件方法不再不相等,不再浪費資源

alert(my.showall==you.showall);

/**create父物件相當於模具,沒有實際功能,所以js不允許其在外部新增方法.showall=function(){}

*my、you例項是由create模具生產出來的產品,有實際功能,所以js允許其直接在外部新增方法.showall=function(){}

* 想要給create父物件在外部新增方法,就需要使用原型prototype解除限制*/}

function h()

this.showqq=function ()

}//原型加方法

create.prototype.showname=function ()

create.prototype.showqq=function ()

create.prototype.showall=function ()

//例項化物件並使用方法

var my=newcreate("gxy","1419178613");

my.showname();

my.showqq();

my.showall();

}function i() ,

alert("qq"+this.qq);}};

json.showname();

json.showqq();

}function j() ;

json.my={};

json.you={};

json.my.showname=function ()

json.you.showname=function ()

json.my.showname();

json.you.showname();

}function k()

a.prototype.showa=function ()

function b()

var obj=new b();

alert(obj.a);

}function l()

a.prototype.showa=function ()

function b()

//利用=號會建立方法的引用,而不是正真的新建立乙份,由於操作的是同一塊記憶體空間,所以a也會使用到這塊記憶體空間裡新增的方法showb()

b.prototype=a.prototype;

b.prototype.showb=function ()

//物件a將能夠使用物件b的方法

var obj=new a();

obj.showb();

}function m()

a.prototype.showa=function ()

function b()

//利用for in遍歷a物件的方法原型,賦給b物件的方法原型,真正的新建立乙份

for(var i in a.prototype)

b.prototype.showb=function ()

//物件a將不能使用物件b的方法

var obj=new a();

try catch (err)

//物件b能正確繼承a裡面的方法

var obj=new b();

obj.showa();}二、

js物件導向的範例

【.html】

自由拖動的oop

限制網頁內拖動的extentoop,繼承自oop

【.js】

window.οnlοad=functionready()

/**面向過程的寫法

*/function opp()

document.οnmοuseup=function () }}

/**物件導向的寫法

*/function oop(id) ;

}oop.prototype.fndown=function(ev)

document.οnmοuseup=function ()

}oop.prototype.fnmove=function(ev)

oop.prototype.fnup=function()

/**繼承上面的物件,並重寫了拖動的方法

*/function extentoop(id)

for (var i inoop.prototype)

extentoop.prototype.fnmove=function(ev) else if(leftborder>domwidthofbox)

if(topborder<0)else if(topborder>domheightofbox)

this.box.style.left=leftborder+'px';

this.box.style.top=topborder+'px';}

js物件導向

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

js物件導向

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

JS物件導向

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