美文网首页
JavaScript函数(26)

JavaScript函数(26)

作者: PhilongHuynh | 来源:发表于2017-12-26 01:08 被阅读0次

函数

  • 函数的声明
  • 如何调用函数
  • 什么call stack
  • this 和arguments
  • 作用域
  • 闭包

函数声明的五种方式

(1)具名函数:
function x(输入1,输入2){ return undefined}
通过console大法可以将x函数输出,虽然console只能输出字符串,但是当console的内容为函数时,会直接调用函数的toString()方法从而实现函数的输出

return undefined 是系统默认添加,消除不了
(2)匿名函数
var x = function (input1,input2){return }
匿名函数前面必须有变量声明,否则浏览器会报错

(3)具名函数的另一种表达形式
var x = function y( return)
注意这种调用方式就必须是x.toString(),如果是y.toString()就会出现报错
var x = function y(input1,input2){
 console.log(y)
}
//A 函数          B undefined
//B

(4)window.Function函数
new Function('x','y','return x+y')

var n = 1;
f = new Function('x','y','return x+'+n+'+y')
f(1,2)  // 4

(5)箭头函数
i: f=(x,y)=>{return x+y}
ii: 省略return的写法f=(x,y) => x+y
iii: 只有一个参数的简单写法:

f=n =>n*n 
f(3) 
//9

五种函数声明的name属性

function f(){}
f.name 
//"f"

var f2 = function(){}
f2.name
//"f2"

var f3 = function f4(){}
f3.name
//"f4"

var f5 = new Function('x','y','return x+y'}
f5.name
//"anonyomous"

f = (x,y)=>{return x+y}
f.name
//"f"

如何调用函数

简单的调用:

function f(x,y){'x','y','return x+y'} 
f(1,2)     //调用的实现

阮一峰在介绍函数时是这样说的:

函数就是一段可以反复调用的代码块,其还可以接受输入不同的参数,不同的参数会返回不同的值

例如求三角形的面积:

function 求三角形的面积('width','height'){
  var mianji = (width * height)/2;
  return mianji;
}
求三角形的面积(4,5)
求三角行的面积(5,6)
//宽是4,高是5时,得出的面积是10
//宽是5,高是6时,得出的面积是15
所以随着高和宽的不断变化, 面积都可以实现得出不同的结果  

函数的调用在内存图中的显示:


通过上图可以得知函数的调用需要call()参与进来
var f ={}
f.params = ['x','y']
f.fbody = 'console.log(1)'
f.call = function(){
eval(f.fbody)
}
f.call()  //执行这个函数函数体
// 1

所以通过上述的介绍我们可以简单的知道函数的调用有两种:
(1)f()
(2)f.call() //以上上为例f.call()的调用:f.call(undefined , 1, 2)
第一种为小白写法,第二种虽然操作起来比较麻烦,但是给专门喜欢炫技的老司机使用


this 和 arguments

相关文章

网友评论

      本文标题:JavaScript函数(26)

      本文链接:https://www.haomeiwen.com/subject/omnkgxtx.html