码迷,mamicode.com
首页 > Web开发 > 详细

JS基础概念

时间:2020-11-23 12:12:24      阅读:11      评论:0      收藏:0      [点我收藏+]

标签:图片   person   make   babel   ons   const   基础概念   git   return   

问题1:ES6中的class 与 ES5中function的关系
ES6 中:

class Person {
    constructor(name) {
        this.name = name;
    }

    sayHello() {
        return ‘hello, I am ‘ + this.name;
    }
}

var kevin = new Person(‘Kevin‘);
kevin.sayHello(); // hello, I am Kevin

对应到 ES5 中就是:

function Person(name) {
    this.name = name;
}

Person.prototype.sayHello = function () {
    return ‘hello, I am ‘ + this.name;
};

var kevin = new Person(‘Kevin‘);
kevin.sayHello(); // hello, I am Kevin

参照:
ES6 系列之 Babel 是如何编译 Class 的
https://github.com/mqyqingfeng/Blog/issues/105

问题二:this指针在不同情况下的表现

<html>
<script>
"use strict";
  function Car(make, model, year) {
  debugger;
  this.make = make;
  this.model = model;
  this.year = year;
}

const car1 = new Car(‘Eagle‘, ‘Talon TSi‘, 1993);

console.log(car1.make);

const myFun = () => {
	debugger;
	console.log(this);
	return 1;
}

myFun();

function fun01(){
	debugger;
 return !this;
} 
 

fun01();

</script>

</html>

第一个case:const car1 = new Car(‘Eagle‘, ‘Talon TSi‘, 1993);
此时的this是指向对象car1的
技术图片

第二个case:myFun();
此时this指向window对象,因为这个function是箭头函数,所以this指针会被提升到window
技术图片

第三个case:fun01()
如果是严格模式"use strict", this指针为undefined。 如果不是严格模式, this指针指向window对象
技术图片

JS基础概念

标签:图片   person   make   babel   ons   const   基础概念   git   return   

原文地址:https://www.cnblogs.com/Andy1982/p/14001574.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!