在 Java 中,我们可以通过 getStackTrace()
来获取调用栈信息。若是 PHP 就更简单了,直接调用 debug_backtrace()
函数就可以打印出各类数据。
可是,在 JavaScript 中的表现又如何?说到底,作为一门不依赖于操作系统的脚本语言,究竟能不能主动获取到堆栈的相关信息?
Yuki 妙妙屋
不要因为走得太远,就忘了当初为什么出发。
在 Java 中,我们可以通过 getStackTrace()
来获取调用栈信息。若是 PHP 就更简单了,直接调用 debug_backtrace()
函数就可以打印出各类数据。
可是,在 JavaScript 中的表现又如何?说到底,作为一门不依赖于操作系统的脚本语言,究竟能不能主动获取到堆栈的相关信息?
在 Javascript 里,所有的数据类型都是「对象」(object),这一点与 Java 非常相似,所以很多人都会误以为 JavaScript 是一门面向对象的语言。
但从严格意义上来讲,Javascript 并不是一门面向对象语言,而是基于对象,也可以说是基于原型。Javascript 并没有「类」(class) 的概念,也没有提供像抽象、继承、重载等有关面向对象语言的许多特性。那么,Javascript 是如何通过 object 来实现 class 类似表现的?
如果你使用过 Swift 或者 C#,那么一定对 var
非常熟悉。它是 variable 或者是 variation 的简写,在编程语言中多用于定义变量的关键字,在一些操作系统中也能见到它的身影。
JavaScript 中也可以使用 var
来声明变量,不仅限于此,还有 let
、const
共三种方式创建变量。而如今却很少在 JS 中见到 var
的身影,这又是为什么?
在 JavaScript 中,生成实例对象有着 new function 与 new class 两种写法。
尽管我们知道,传统 function
构造函数是 ES5 中的写法,而 class
则是在 ES6 新提出的关键字,那么这两种写法到底有着什么样的区别?