setTimeout 最終版本 物件導向可擴充套件

2021-06-20 09:06:42 字數 4253 閱讀 5849

object.extend=function(destination, source)

return destination; //返回擴充套件後的destination

}//extend方法的所用是 destination目標物件的property屬性繼承source物件的property屬性

function message(opt);

this.settings=;

this.objecs = object.extend(this.objecs, opt); //message例項化物件的objecs屬性 = object物件的extend方法

//object物件的extend方法傳遞兩個引數 this.objecs物件和opt物件

物件繼承opt物件的所有屬性和方法

}message.prototype.postitionmessage = function() 

this.parap = document.getelementbyid(this.objecs.oid); //id為message例項物件的objescs物件的oid屬性

this.parap.style.csstext =  "position:absolute;left:"+this.objecs.oleft+"px;top:"+this.objecs.otop+"px;";

this.moviemessage();

}message.prototype.moviemessage = function());

s.postitionmessage();

var s1 = new message();

s1.postitionmessage();

};window.onload = messageobject;

whee0

whee1

思路和編寫過程

物件導向可擴充套件

步驟1 需要乙個類 公用引數都寫入類的內部 以便例項物件和類的原型可以繼承類內部的方法和屬性

寫乙個message類

物件導向可擴充套件

步驟1 需要乙個類 公用引數都寫入類的內部 以便例項物件和類的原型可以繼承類內部的方法和屬性

寫乙個message類

function message()

類內部的第一部分需要的是 獲取dom物件的id,初始化x,y的位置。實現**如下:

function message()

}類內部還需要第二部分 作用是dom物件移動的最大距離和乙個時間屬性表示每過多久執行一次,實現**如下:

function message()

this.settings=

}步驟2 需要對類進行擴充套件 以便可以實現所需要的功能 用prototype原型來進行擴充套件 例項化後的物件將會繼承類的原型的所有方法和屬性

寫乙個message類的原型的postitionmessage方法函式 用來獲取dom物件和初始化dom物件和呼叫另外乙個執行動畫的方法函式

實現**如下:

message.prototype.positionmessage = function(); //如果oid屬性值為空就返回 不執行下面** 為空說明並沒有需要執行的dom物件

this.para = document.getelementbyid(this.objecs.oid) //獲取dom物件

this.para.style.csstext = "position:absolute;left:"+this.objecs.oleft+"px;top:"+this.objecs.otop+"px;";

//初始化dom物件的位置

this.movemessage(); //呼叫乙個實行動畫功能的方法函式

}步驟3 需要寫乙個用來執行動畫的方法函式movemessage 實現**如下:

message.protorype.movemessage = function()

this.settings=

}message.prototype.positionmessage = function(); //如果oid屬性值為空就返回 不執行下面** 為空說明並沒有需要執行的dom物件

this.para = document.getelementbyid(this.objecs.oid) //獲取dom物件

this.para.style.csstext = "position:absolute;left:"+this.objecs.oleft+"px;top:"+this.objecs.otop+"px;";

//初始化dom物件的位置

this.movemessage(); //呼叫乙個實行動畫功能的方法函式

}message.protorype.movemessage = function()

是用來初始化存放dom物件的id屬性和初始化位置的 而上面的**並沒有傳遞引數進入message所以還需要傳遞id屬性和初始化位置的引數

在例項化類的時候設定引數 實現**如下:

function messageobject()); //將物件傳入message類

var whee1 = new message();

whee0.positionmessage(); //物件獲取positionmessage方法函式

whee1.positionmessage();

}message類的修改**如下:

function message(opt)

this.settings=}

問題提出 opt引數物件並沒有使用到 我們還需要寫一段** 讓opt引數能夠使用上 為此可以寫一段可以實現覆蓋的**

由於所有物件都是object物件的子物件 所以我們寫乙個object物件上寫乙個方法函式

實現**如下:

object.extend = function(destination, source)

return destination; //返回擴充套件後的destination}

問題提出 這段**寫好了 應該如何使用 我們再看看message類 因為是這個類來獲取和初始化dom物件的id屬性和位置的

function message(opt)

this.settings=

}現在我們需要的是讓pot物件引數內部的屬性來覆蓋objecs物件內部的屬性 所以就需要使用上面寫的覆蓋** 實現**如下

this.objecs = object.extend(this.objecs,opt)

將this.objecs物件重新寫為可以覆蓋的** 將這段**加入到message類中 實現**如下:

function message(opt)

this.objecs = object.extend(this.objecs,opt);

this.settings=}

最終完整**如下:

object.extend=function(destination, source)

return destination; //返回擴充套件後的destination};

function message(opt)

this.objecs = object.extend(this.objecs,opt);

this.settings=

}message.prototype.positionmessage = function(); //如果oid屬性值為空就返回 不執行下面** 為空說明並沒有需要執行的dom物件

this.para = document.getelementbyid(this.objecs.oid) //獲取dom物件

this.para.style.csstext = "position:absolute;left:"+this.objecs.oleft+"px;top:"+this.objecs.otop+"px;";

//初始化dom物件的位置

this.movemessage(); //呼叫乙個實行動畫功能的方法函式

}message.protorype.movemessage = function(){

var self = this; //將this賦值給self 因為在settimeout內部this的指向是window物件 這裡我們不需要window物件 需要的是類例項化後的物件

var xpos = parseint(this.para.style.left); //獲取dom物件x軸的位置 並且用parseint轉化為數字

var ypos = parseint(this.para.style.top);  //獲取dom物件y軸的位置 並且用parseine轉化為數字

if(xposwhee0

whee1

解析器最終版本

include include define size 512 define cr n char file 300 input.txt 用於接收輸入輸出檔名 定義分界符 char singleword 50 file fin 指向輸入檔案的指標 void main int returnvalue 0...

cuda做卷積運算最終版本

include device functions.h include cuda runtime.h include device launch parameters.h include stdlib.h include include using namespace std 返回thread和blo...

簡易單鏈表模版(暫定最終版本)

自己寫的乙個單鏈表模版,模版的實現和定義是不可以分開兩個檔案寫的 和平時寫的類的不太一樣 這個要注意,一開始沒注意到這個 就出現了那個最討厭的 unresolve external symbol 的錯誤 下面是 功能是一些比較常見的功能 這個是經過修改完善後的乙個最終版本,以後有新想法 會再新增進去...