JS如何定義方法及調用 精選

簡單搜索了下,遇到點問題
1,常常在JS中看到如var foo = function(){}的形式
foo是方法名仍是對象名,若是想調用此方法,是用foo(),foo.function(),仍是該如何正確調用。除此以外,但願高手幫忙總結下,JS自定義方法和調用的一個大全,這個能夠沒有,先謝了javascript

 

 

方法(method)是經過對象調用的javascript函數。也就是說,方法也是函數,只是比較特殊的函數。html

函數(function)是一段代碼,須要經過名字來進行調用。它能將一些數據(函數的參數)傳遞進去進行處理,而後返回一些數據(函數的返回值),也能夠不返回數據。java

當將函數和對象和寫在一塊兒時,函數(function)就變成了方法(method)。app

爲了便於理解方法、函數、對象,咱們經過示例來了解一下:函數

一、JS中定義函數的格式爲:this

var funname =function(參數a,參數b...){具體方法動做};prototype

或者 function funname(var1,var2){要執行的具體代碼}。3d

舉例,var foo=function(a,b){ return a+b; }htm

在上面函數中,foo就是函數名,而不是對象名。對象

二、想要調用上式中的函數的話能夠直接調用函數名稱。

如:sumA=foo(5,6);

也就是sumA直接調用了foo()函數,而且爲函數傳值(5,6),最終結果sumA=11。

三、你提問中說方法和對象分不清,那咱們再來看下如何定義對象,如:

var foo={

fooid:10;

fooname:"對象",

fooFunc:function(){alert(this.fooname);}

在上面程序代碼中,foo就成了對象名,fooid、fooname都是對象的屬性,而fooFunc函數就成了該對象的一個方法。

若是想要調用該對象下的fooFunc方法的話,能夠使用對象名.方法名,即:foo.funFunc();

對於函數,JS中調用方式有不少,下面就總結介紹一下JS函數調用的四種方法:

一、經過對象調用方法:

先定義一個對象,而後在對象的屬性中定義方法,經過myobject.property來執行方法,this即指當前的myobject 對象。

代碼示例:

var blogInfo={blogId:123,blogName:"werwr",showBlog:function(){alert(this.blogId);}};

blogInfo.showBlog();

二、方法(函數)的直接調用模式:

定義一個函數,設置一個變量名保存函數,這時this指向到window對象。

代碼示例:

var myfunc = function(a,b){return a+b;}

alert(myfunc(3,4));

三、構造器調用模式

定義一個函數對象,在對象中定義屬性,在其原型對象中定義方法。在使用prototype的方法時,必須實例化該對象才能調用其方法。

代碼示例:

var myfunc = function(a){this.a = a;};

myfunc.prototype = {show:function(){alert(this.a);}}

var newfunc = new myfunc("123123123");newfunc.show();

四、apply,call調用方法:

代碼示例:

var myobject={};

var sum = function(a,b){return a+b;};

var sum2 = sum.call(myobject,10,30); //var sum2 = sum.apply(myobject,[10,30]); alert(sum2);

擴展資料:

在項目開發過程當中,也許你會遇這樣的狀況:

在某一Js文件中須要完成某一功能,但這一功能的大部分代碼在另一個Js文件中已經完成了,本身只須要調用這個方法再加上幾句代碼就能夠實現所需的功能。

例若有這樣一個html,裏面有一個按鈕,當按下時調用b.js文件中的方法b()。而b()中又要調用a.js文件中的方法a()。若要實現這個功能,必須注意,將要引入的Js文件代碼放在</body>下面。

首先,咱們在html中引入b.js,並在</body>以後加入引用語句。以下:

      

 

b.js文件以下:

 

在b.js文件中前4行代碼中咱們引入了a.js文件,並在第7行代碼中調用了a.js代碼中的a()方法。

讓咱們來分析一下關鍵的幾句代碼:首先,咱們利用document.createElement("script")生成了一個script的標籤,設置其type屬性爲text/javascript,src爲a.js(這裏的a.js同b.js放在同一個目錄,也可放在不一樣的目錄)。

最後將這個標籤動態地加入body中。如此一來,咱們就能夠調用到不一樣js文件中的方法了。

相關文章
相關標籤/搜索