JS也存在有指针这一说法吗

JavaScript039

JS也存在有指针这一说法吗,第1张

指针其实就是内存地址,能够操作指针,就表示程序可以直接操作内存,这对于运行于网页中的js脚本是非常危险的,浏览器以及操作系统都不可能让这样的事发生,所以js脚本不可能有指针的概念,只能引用由浏览器分配的内存,至于这个内存的物理地址究竟是什么,则至少对于js的编程者而言是不透明的。

首先明确一下,js里面没有指针这个说法,只有引用。所以应该是js如何传递函数的引用的。

function fu(){}

这里fu就是一个函数的引用变量,而fu()则是这个函数。

var n=fu()

这是把这个函数给了n,即n也是fu()这个函数的引用变量了,他可以访问fu()里面的东西。

var n=fu;

这个属于函数的引用的传递,也表示n指向了fu()函数,但是区别是,n此时不会解析函数,而上面则会开始解析函数fu()。

1.new操作符

new会创造一个对象实例,这个实例继承了new操作符右边的对象,因此在调用方法时,this会指向对象实例

2.call/apply/bind

call和apply主要用于指定this的环境变量,第一个参数是什么,this就指向什么,如果是null,则指向window

bind是延迟的,会返回一个修改后的函数,可以自行决定执行的时间