簡單搜索了下,遇到點問題
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文件中的方法了。