日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

5.5 function

發(fā)布時(shí)間:2025/3/21 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 5.5 function 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

實(shí)例

function sum(num1, num2){return num1 + num2; }//函數(shù)表達(dá)式 var sum = function(num1, num2){return num1 + num2; }

函數(shù)名是指向函數(shù)的指針,一個(gè)函數(shù)可能有多個(gè)名字

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));//20

5.5.1 沒(méi)有重載(深入理解)
將函數(shù)名想象成指針

function addSomeNumber(num){return num + 100; } function addSomeNumber(num){return num + 200; } addSomeNumber(100)//300var addSomeNumber = function(num){return num + 100; }addSomeNumber = function(num){return num + 200; } addSomeNumber(100);//300 創(chuàng)建第二個(gè)函數(shù)的時(shí)候,覆蓋了引用第一個(gè)函數(shù)的變量addSomeNumber

5.5.2 函數(shù)聲明與函數(shù)表達(dá)式
解析器解析的時(shí)候不是一視同仁:先讀取函數(shù)聲明,函數(shù)表達(dá)式要等解析器執(zhí)行到它所在的代碼行。

alert(sum1(10, 10));//20 function sum1(num1, num2){return num1 + num2; } ===== alert(sum1(10, 10));//sum1 is not a function var sum1 = function(num1,num2){return num1 + num2; }

5.5.3 作為值的函數(shù)

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 函數(shù)內(nèi)部屬性 arguments,this
arguments: 一個(gè)類數(shù)組對(duì)象包含傳入函數(shù)的所有參數(shù)
arguments.callee: 指向擁有這個(gè)arguments對(duì)象的函數(shù)
this: 引用的是函數(shù)據(jù)以執(zhí)行的環(huán)境對(duì)象
caller: 這個(gè)屬性中保存著調(diào)用當(dāng)前函數(shù)的函數(shù)的引用。

function factorial(num){if(num <= 1){return 1;}else{return num * factorial(num-1);} }l(factorial(5)); //不受函數(shù)名限制 function factorial(num){if(num <= 1){return 1;}else{return num * arguments.callee(num - 1);} }

this

window.color = 'red'; var o = {color:'blue'}; function sayColor(){l(this.color) } sayColor();//redo.sayColor = sayColor; o.sayColor();//blue

caller

function outer(){inner(); }function inner(){l(inner.caller);//? outer(){inner();} }outer();function outer(){inner(); }function inner(){l(arguments.callee.caller); } outer();

5.5.5 函數(shù)屬性和方法(length,prototype, call,apply,bind)
length: 希望接受的命名參數(shù)的個(gè)數(shù)
prototype:保存所有實(shí)例方法的真正所在
call,apply: 擴(kuò)充函數(shù)賴以運(yùn)行的作用域
apply: 運(yùn)行函數(shù)的作用域,接收數(shù)組
call:運(yùn)行函數(shù)的作用域,接收參數(shù)
length

function sayName(name){l(name); } function sum1(num1, num2){return num1 + num2; } function sayHi(){l('hi'); } l(sayName.length);//1 l(sum1.length);//2 l(sayHi.length);//0

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

擴(kuò)充函數(shù)賴以生存的作用域

window.color = 'red'; var o = {color: 'blue'}; function sayColor(){l(this.color); } sayColor();sayColor.call(this);//red sayColor.call(window);//red sayColor.call(o);//blue

bind:創(chuàng)建一個(gè)函數(shù)的實(shí)例,其this值會(huì)被綁定到傳給bind()函數(shù)的值

window.color = "red";var o = {color:"blue"}; function sayColor(){l(this.color); } var objSayColor = sayColor.bind(o); objSayColor();//blue

轉(zhuǎn)載于:https://www.cnblogs.com/caijw/p/8150938.html

總結(jié)

以上是生活随笔為你收集整理的5.5 function的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。