js中函数的prototype.constructor是指向函数本身,它有什么用

JavaScript06

js中函数的prototype.constructor是指向函数本身,它有什么用,第1张

希望这张图能帮到你,函数中的prototype.constructor是指向Function构造函数本身的,而Function.prototype是Function构造函数构造出来的实例。实际工作中对于原型链的问题我还真是没怎么碰到过,所以他具体有什么用我也就不得而知了。望采纳

首先,setTimeout是可以取消的,可以不让其永远不终止,方法如下:

var timer = null

function f(){

    alert("k")

    timer = setTimeout(f,1000)

}

// 在另外一个函数中,在某种条件下,取消之前的定时器

clearTimeout(timer)

这样,timer就不再执行了,也就不会再次调用函数f,生成新的定时器。

其次,关于内存,js类似于java有垃圾回收机制,一些不会再次用到的变量等,会被清理。只要是作用域不逃出函数f的,函数f执行完毕后,js总是有办法将其销毁,当然不一定百分百销毁。这样的话,内存怎么会越来越多呢?只有函数f在执行的时候会多一些,但随即又会被清理的。

最后,即便没有clearTimeout,在浏览器关闭的时候,一切都会消失的。

要提醒的是,如果函数f里在不停的创建对象,而且在函数f执行完毕后,这些对象又是被引用的,确实会有内存被越来越多的占用。

简单可以理解为 有return和没有return的区别。

因为js是弱类型的语言,所以function不需要返回类型的修饰符而已,这样对于新手确实是不友好的。需要用强类型语言来举例才更合适。诸如上面提到的sort()之类的,在强类型语言下,返回类型一般会被设定为void。而toString这种设计,是为了把某些类型的数据转化为一个字符串的表达。按面向对象的讲法,比如一个person类,toString可能被设计成返回这个人的基本信息,如果改变自己,连自己的类型也要改变,这就很奇怪了。