理解上有点小插曲,请问老师是不是这样呢?

来源:3-12 选择题

慕前端2064318

2019-10-15 18:36:50

fn(add)

  1. 是不是因为add没有调用(add仍然保留其函数的类型),所以是当成obj,在obj参数传递的时候,赋值成了xm?

  2. 接上条,是不是add传到FN的时候已经改写了这个function,之前的add(a,b),这个函数已经作废,此时的add已经不再是一个函数,而是一个对象。

  3. 接第二条,是不是程序运行结束以后 add已经变成对象?之前的add已经不再是一个函数?还是说add还是函数,只是本次运行以后是obj  ,两者是分别独立存在的?

写回答

1回答

好帮手慕慕子

2019-10-15

同学你好,根据同学的描述, 老师觉得你还是对这道题的理解上存在一些问题,  可以参考如下解答去理解

首先, 我们要去了解一个概念, 在js语言中, 函数也可以看做是一个对象,可以给函数添加属性和方法, 函数和对象这个没有严格的区分, 同学可以把它们都看作是引用类型的数据去理解哦, 

然后, 可以将声明的函数看做是存放在堆内存中,函数名存放在栈内存中, 把函数名看做是一个指针指向堆内存中对应的函数。老师这里简单的给你画一个图帮助你理解。

http://img.mukewang.com/climg/5da5a708093c6e5e13470728.jpg

这一块可能比较抽象,不好理解。 同学不要着急, 随着知识慢慢的积累,多练习思考会更容易理解。

不过, 画图肯定没有视频讲解的清晰。 同学如果还有疑惑。  可以回顾一下视频。 视频中老师都有详细的讲解哦, 可以边看视频边思考, 遇到不会的可以暂停视频想一想, 遇到想不明白的, 可以继续在问答区提问。 我们会继续为你解答的

如果帮助到了你, 欢迎采纳!

祝学习愉快~~~


0

0 学习 · 4826 问题

查看课程