摘要:函數對象連接到。好處有助于確保全局名字空間的純凈性私有性保留了自己的函數,不為外部應用程序所用返回自己的函數函數始終有一個返回值,即便不是顯示返回,它們會隱式返回一個。
函數 概念:
函數對象:函數包含一組語句,它們是javaScript基礎模塊單元,用于代碼復用、信息隱藏和組合調用。用于指定對象的行為。
函數定義javascrtipt中的函數就是對象。對象是‘名/值’對的集合并擁有一個連到原型對象的隱藏連接。 對象字面量產生產生的對象連接到Object.prototype。函數對象連接到Function.prototype。每個函數在創建時會附加兩個屬性,函數的上下文和函數實現的代碼
有三種方式可以定義函數
1. 使用函數聲明語法·定義函數
function sum(sum1,sum2){ return num1+num2; }
2. 使用函數表達式定義函數:
var sum = function(sum1, sum2){ return num1+num2; }
3. 構造函數
function Person() { this.name = "a"; return; }函數參數:
當函數被調用時,會得到一個“免費”分配的參數:argument數組。函數可以通過此參數訪問所有它被調用時傳遞給它的參數列表,包括那些沒有被分配給函數聲明時定義的形式參數。它只是一個類數組,擁有一個Length屬性,但沒有數組的任何方法。
//可以不指定參數個數 function add(){ var sum = 0; for(var i = 0, l = arguments.length; i < l; i++){ sum += arguments[i]; } return sum; } add(1,2,3);//6函數返回:
函數調用:return可以用來使函數提前返回,如果沒有指定,則返回undefined。
如果函數調用時在前面加上new前綴,且返回值不是一個對象,則返回this(該新對象)。
javaScript一共有4中調用模式:方法調用模式,函數調用模式,構造器調用模式和apply調用模式。
調用運算符是函數表達式后的一對圓括號。
方法調用模式
當函數被保存為對象屬性時,稱他為一個方法。當一個方法被調用時,this被綁定到該對象。
var myObject = { value:0, increment:function(inc){ this.value += typeof inc === "number"?inc:1; } }; myObject.increment(2); myObject.value//3
?函數調用模式
當函數并非一個對象的屬性時,就是當作函數調用的
var sum = add(1,2);
構造器調用模式
//創建一個名為Quo的構造函數。構造一個帶有status的屬性 var Quo = function(string){ this.status = string; }; //給Quo的所有實例提供一個名為get_status的公共方法。 Quo.prototype.get_status = function(){ return this.status; }; //構建一個Quo的實例 var myQuo = new Quo("confused"); document.writeln(myQuo.get_status());//confused
? apply調用模式
因為javaScript是一門函數式的面對對象編程語言,所以函數可以擁有方法。
apply方法讓我們構建一個參數數組傳遞給調用函數。它允許我們選擇this值。apply方法接收兩個參數,第一個是要綁定給this的值,第二個是參數數組。
// 構造一個包含兩個數字的數組,并把它們相加 var statusObject = { status:"A-Ok" }; var status = Quo.prototype.get_status.apply(statusObject);匿名函數:
function(a){ return a; }
用法;
將匿名函數作為參數傳遞給其他函數。這樣接收方函數就你利用我們所傳遞的函數來完成一些事情。(也就是回調函數)
定義某個匿名函數來執行某些一次性任務。(也就是自調函數)
回調函數:把函數當成參數傳遞給其他函數
//add就是回調函數,如果add為匿名函數,就稱它為匿名回調函數 function add(a,b){ return a() + b (); } function a(){ return 1; } function b(){ return 2; } add(a,b);//3自調函數:
自行調用的函數:
(function(){ alert("foo"); })()//第二對括號起到立即調用的作用,同時也是傳遞參數的地方
好處:使用自調匿名函數不會產生任何全局變量。但也無法重復執行。比較適合執行一些一次性或初始化的任務。
function a(param){ function b(theinput){ return theinput*2; } return "The result is " + b(param); } a(2);//The result is 4 b(2);//b is not define
好處:
有助于確保全局名字空間的純凈性
私有性:保留了自己的函數,不為外部應用程序所用
返回自己的函數:函數始終有一個返回值,即便不是顯示返回,它們會隱式返回一個undefined。也可能是返回另一個函數。
function a(){ alert("A!"); return function(){ alert("B!"); } } a()();//可以直接加上括號執行能重寫自己的函數:
由于一個函數可以返回另一個函數,因此我們也可以用新的函數來覆蓋舊的。
function a(){ alert("A!"); a = function(){ alert("B!"); }; } 這樣一來,第一次調用該函數時: alert("A!")會被執行(可以看為一次性的操作) 全局變量會被重新定義,被賦予新的函數 如果再次被調用將執行alert("B!");
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/91010.html
摘要:一面向對象初步認識什么是對象一句話解釋萬物皆對象對象是有屬性的用來寫入對象的應用接口接口簡單的說就是后臺提供給前端提供數據的,讓我們進行渲染請求接口的時候我們會用到一個函數小例子代碼如下背心吊帶無袖打底衫內搭 一、面向對象初步認識 1.什么是對象? 一句話解釋: 萬物皆對象 對象是有屬性的:用{ }來寫入! 2.對象的應用(接口) jsonshowImg(https://segment...
摘要:一面向對象初步認識什么是對象一句話解釋萬物皆對象對象是有屬性的用來寫入對象的應用接口接口簡單的說就是后臺提供給前端提供數據的,讓我們進行渲染請求接口的時候我們會用到一個函數小例子代碼如下背心吊帶無袖打底衫內搭 一、面向對象初步認識 1.什么是對象? 一句話解釋: 萬物皆對象 對象是有屬性的:用{ }來寫入! 2.對象的應用(接口) jsonshowImg(https://segment...
摘要:一面向對象初步認識什么是對象一句話解釋萬物皆對象對象是有屬性的用來寫入對象的應用接口接口簡單的說就是后臺提供給前端提供數據的,讓我們進行渲染請求接口的時候我們會用到一個函數小例子代碼如下背心吊帶無袖打底衫內搭 一、面向對象初步認識 1.什么是對象? 一句話解釋: 萬物皆對象 對象是有屬性的:用{ }來寫入! 2.對象的應用(接口) jsonshowImg(https://segment...
摘要:函數式編程不是一個框架或工具,而是一種編寫代碼的方式。函數式編程首先是一個聲明式編程范例。舉個例子純函數函數式編程基于的前提是您將基于純函數構建不可變的程序作為業務邏輯的構建塊。 showImg(https://segmentfault.com/img/remote/1460000012402865?w=693&h=339); 最近朋友推薦這本書:Functional PHP ,很多對...
閱讀 1681·2021-11-15 11:38
閱讀 4533·2021-09-22 15:33
閱讀 2341·2021-08-30 09:46
閱讀 2189·2019-08-30 15:43
閱讀 832·2019-08-30 14:16
閱讀 2076·2019-08-30 13:09
閱讀 1261·2019-08-30 11:25
閱讀 707·2019-08-29 16:42