JS 普通函数跟箭头函数的区别
发表于|更新于
|浏览量:
箭头函数不会产生this, 会捕捉当前的执行上下文中的this当做自己的this
箭头函数不能做为构造函数
箭头函数不能绑定 arguments
call/apply/bind 对箭头函数不起作用
箭头函数没有原型属性
箭头函数不能当作 Generator 函数,不能使用 yield 关键字
文章作者: 李鹏辉
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Lee Blog!
相关推荐
2020-02-27
JS dom元素位置相关的内容
offsetWidth: 返回元素的宽度(包括元素宽度 + 内边距 + 边框,不包括外边距) offsetHeight: 返回元素的高度(包括元素高度 + 内边距 + 边框,不包括外边距) clientWidth: 返回元素的宽度(包括元素宽度 + 内边距,不包括边框和外边距) clientHeight: 返回元素的高度(包括元素高度 + 内边距,不包括边框和外边距) style.width: 返回元素的宽度(包括元素宽度,不包括内边距、边框和外边距) style.height: 返回元素的高度(包括元素高度,不包括内边距、边框和外边距) scrollWidth: 返回元素的宽度(包括元素宽度 + 内边距 + 溢出尺寸,不包括边框和外边距),无溢出的情况,与clientWidth相同 scrollHeigh: 返回元素的高度(包括元素高度 + 内边距 + 溢出尺寸,不包括边框和外边距),无溢出的情况,与clientHeight相同 style.width...
2020-02-29
JS new 一个对象的过程
首先让我回忆一下创建对象的三种方法 单休模式 1234567891011const Person = { name: "angelee", sayname: function() { return this.name; }}let ahui = Object.create(Person);ahui.name = "ahui"console.log(ahui.sayname()) // ahui 构造函数 123456789const Person = function (name) { this.name = name;}Person.prototype.sayname = function () { return this.name;}let ahui = new Person("ahui");console.log(ahui.sayname()); // ahui ES6...
2020-03-01
JS this
有关于this ,我们说得最多的一句话就是谁调用,指向谁;也就是 this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象 其实, 在我们 JS 里边,要想真的理解 this ,只知道上边这一句话是完全不行的,我们可以从以下几个方面学习跟理解 this : 从 this 绑定层面去理解:默认绑定,隐式绑定,显式绑定,new 绑定 从函数的运行环境层面去理解: this, 内存, 函数,环境变量 能过实际代码的上下文去理解 默认绑定先看一个例子: 12345678var name = "global"function foo () { var name = "foo" console.log(this.name);}foo(); // global 很显然, foo 函数执行的时候,所在的环境是 window, 所以 this.name 就是 window 的 name...
2020-02-29
JS prototype
在典型的面向对象的语言中,如java,都存在类(class)的概念,类就是对象的模板,对象就是类的实例。但是在Javascript语言体系中,是不存在类(Class)的概念的,javascript中不是基于‘类的’,而是通过构造函数(constructor)和原型链(prototype...
2020-02-15
JS __proto__和prototype的区别和关系
首先,看别人怎么说的:1.在JS里,万物皆对象。方法(Function)是对象,方法的原型(Function.prototype)也是对象。它们都会具有对象共有的特点:对象具有属性 __proto__,可称为隐式原型,一个对象的隐式原型指向构造该对象的构造函数的原型,这也保证了实例能够访问在构造函数原型中定义的属性和方法。 2.方法(Function)方法这个特殊的对象,除了和其他对象一样有上述 __proto__...
2020-02-29
JS 函数实参转换为数组
实际参数在函数中我们可以使用 arguments 对象获得 (注:形参可通过 arguments.callee 获得),虽然 arguments 对象与数组形似,但仍不是真正意义上的数组。 0: […arguments]这个方法其实是用来代替下边方法一的 一:通过 Array.prototype属性调用 slice 方法1const args = Array.prototype.slice.call(arguments) Array 本身是没有 slice 方法,它的方法在 Array.prototype中,而我们在调用 slice 方法的时候,如果在 Array 本身没有找到 slice 方法的话,会通过它的原型链往上查找。 二. 通过调用[]的slice方法1const args = [].sclice.call(arguments, 0) 注意这里是[], 不是 Array,为什么呢? 先看下边 12345typeof []; // objecttypeof Array; // Funcion[].__proto__ === Array.prototype;...
公告
This is my Blog