美文网首页
函数的调用

函数的调用

作者: 夜未央_M | 来源:发表于2019-01-08 15:10 被阅读14次

f.call()

我们知道数值赋给变量后是直接可以用的,比如

n=1
console.log(n)
// ▶︎ 1

函数则需要调用,其英文单词为 call,那如何调用一个函数呢?
先声明一个函数 function f(x, y){return x+y}
★★★
通常我们都是 f(x, y )调用,但是如果我们如果只打一个 f 那么return x+y这句会被执行吗?
答案是不会,因为 f 就是一个变量,直接打一个 f, 那么这个变量就是占据了一定的内存空间,什么也不做。

那么函数到底是什么?
阮一峰在博客中写到 函数就是一段可以反复调用的代码块。
比如求三角形面积, 如果我们觉得这一系列代码都在做一个事情, 那么我们就可以把他们放到一个函数体(可以反复调用)里面。
反复调用就是每一次我们都可以传不同的参数,去运行代码(返回不同的值)。

function 求三角形面积(width, height){
  var n = width*height
  var m = n/2
  return m
}

那么函数在内存中是如何存储的呢?
答案是: 先把函数当成字符串去存储,

求三角形面积.toString()
-------------------------
"function 求三角形面积(width, height){
  var n = width*height
  var m = n/2
  return m
}"

具体体现为


然后通过 eval执行执行以下。(eval的意思是给一个字符串,把这个字符串当成代码给执行一下。)

那么函数到底是什么?
我们的总结为 函数是一个对象,这个对象可以执行一段代码。可以执行代码的对象就叫做函数,我们说的代码是我们写的代码,不是说它有什么方法。那么我们的知识点就组成了一个体系。那么我们来回顾一下。


Js的7种数据类型
简单类型:Number,String,Boolean,Undefined,Null,Symbol
复杂数据类型:Object


那么为什么那么多人用 f(x, y) 而不用f.call(x, y)?

★★★★★
这两个调用方法是通用的,但是 f.call(x, y)才是真正的调用,称之为硬核(骨灰级玩家),而 f(x, y)则是糖,其实是 js 之父对新人的一种妥协。建议采用 call 调用,为后面对 this 的学习做铺垫。
★★★★★

那么 f.call(x, y)是如何使用的呢?例子如下

function f(x, y ){return x+y}
f.call(undefined, 1, 2)
// ‹ 3
f.call(undefined, 4, 2)
// ‹ 6

相关文章

  • [转载]JavaScript权威指南(8)--函数

    文章前言 一 函数定义 二 函数调用 1,函数调用 2,方法调用 3,构造函数调用 4,间接调用 三 函数的实参和...

  • 【Solidity学习笔记】外部函数的调用

    3.8 外部函数的调用 在Solidity中,有两种函数调用:内部函数调用和外部函数调用。内部函数调用是指一个函数...

  • JS函数调用

    js 里函数调用有4种模式:方法调用、正常函数调用、构造器函数调用、apply/call 调用。无论哪种函数调用除...

  • 内联函数

    解决函数调用效率的问题:函数之间调用,是内存地址之间的调用,当函数调用完毕之后还会返回原来函数执行的地址。函数调用...

  • js里函数调用的四种模式

    js 里函数调用有4种模式:方法调用、正常函数调用、构造器函数调用、apply/call调用。同时,无论哪种函数调...

  • Python学习(二)

    函数 python内置了很多函数可以直接被调用,可以从官方文档查阅内置的函数. 函数调用 调用abs()函数 函数...

  • JavaScript - this与函数的四种调用方式

    在 ES6 之前,函数内部 this 的指向是由该函数的调用方式来决定的 函数调用方式 使用函数调用方式调用函数时...

  • 2017-03-31 面向对象学习笔记

    函数的调用方式和 this 丢失 函数调用方式 普通函数方式调用 this - window 对象的...

  • Nodejs学习笔记-函数

    调用本地函数调用外部函数-支持一个函数调用外部函数-支持多个函数字符串方式调用函数 代码:https://gith...

  • JavaScript函数的四种调用模式

    函数调用模式 单独独立调用的就是函数:函数名(参数) 任何自调用函数都是函数模式 this表示全局变量 方法调用模...

网友评论

      本文标题:函数的调用

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