5.5 function
生活随笔
收集整理的這篇文章主要介紹了
5.5 function
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
實例
function sum(num1, num2){return num1 + num2; }//函數表達式 var sum = function(num1, num2){return num1 + num2; }函數名是指向函數的指針,一個函數可能有多個名字
function sum1(num1, num2){return num1 + num2; }alert(sum1(1, 2));//3var anotherSum = sum1; l(anotherSum(10,10));//20 sum1 = null; l(anotherSum(10,10));//205.5.1 沒有重載(深入理解)
將函數名想象成指針
5.5.2 函數聲明與函數表達式
解析器解析的時候不是一視同仁:先讀取函數聲明,函數表達式要等解析器執行到它所在的代碼行。
5.5.3 作為值的函數
function callSomeFunction(someFunction, someArgument){return someFunction(someArgument); } function callSomeFunction(someFunction, someArgument){return someFunction(someArgument); } function add10(num){return num + 10; }var result = callSomeFunction(add10, 10); l(result);//20function getGreeting(name){return 'hello ' + name; } var result2 = callSomeFunction(getGreeting, 'cjw'); l(result2);//hello cjw function createComparisonFunction(propertyName){return function(object1, object2){var value1 = object1[propertyName];var value2 = object2[propertyName];if(value1 < value2){return -1;}else if (value1 > value2){return 1;}else{return 0;}} }var data = [{name:'Zachary',age:228},{name:'Nicholas',age:29}]; data.sort(createComparisonFunction('name')); l(data[0]); data.sort(createComparisonFunction('age')); l(data[0]);5.5.4 函數內部屬性 arguments,this
arguments: 一個類數組對象包含傳入函數的所有參數
arguments.callee: 指向擁有這個arguments對象的函數
this: 引用的是函數據以執行的環境對象
caller: 這個屬性中保存著調用當前函數的函數的引用。
this
window.color = 'red'; var o = {color:'blue'}; function sayColor(){l(this.color) } sayColor();//redo.sayColor = sayColor; o.sayColor();//bluecaller
function outer(){inner(); }function inner(){l(inner.caller);//? outer(){inner();} }outer();function outer(){inner(); }function inner(){l(arguments.callee.caller); } outer();5.5.5 函數屬性和方法(length,prototype, call,apply,bind)
length: 希望接受的命名參數的個數
prototype:保存所有實例方法的真正所在
call,apply: 擴充函數賴以運行的作用域
apply: 運行函數的作用域,接收數組
call:運行函數的作用域,接收參數
length
apply,call
function sum1(num1, num2){return num1 + num2; } function callSum1(num1, num2){return sum1.apply(this, arguments); } function callSum2(num1, num2){return sum1.apply(this, [num1,num2]); } function callSum3(num1, num2){return sum1.call(this, num1, num2); } l(callSum1(10, 10));//20 l(callSum2(10, 10));//20 l(callSum3(10, 10));//20擴充函數賴以生存的作用域
window.color = 'red'; var o = {color: 'blue'}; function sayColor(){l(this.color); } sayColor();sayColor.call(this);//red sayColor.call(window);//red sayColor.call(o);//bluebind:創建一個函數的實例,其this值會被綁定到傳給bind()函數的值
window.color = "red";var o = {color:"blue"}; function sayColor(){l(this.color); } var objSayColor = sayColor.bind(o); objSayColor();//blue轉載于:https://www.cnblogs.com/caijw/p/8150938.html
總結
以上是生活随笔為你收集整理的5.5 function的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python内置函数(58)——inpu
- 下一篇: 计算机网络_第7版_谢希仁_目录