zoukankan      html  css  js  c++  java
  • [Javascript] this in Function Calls

    In most cases, the value of a function's this argument is determined by how the function is called. This lesson explains what thisrefers to when we call plain function. Marius points out how functions behave differently in strict and non-strict mode. "use strict"mode defaults this to undefined and prevents us from assigning values to undefined. We must call functions as a constructor to assign their this value correctly.

    "use strict";
    
    console.log(this === global)  // false, in REPL this === global
    console.log(this === module.exports) // true
    
    function Person(firstName, lastName) {
        console.log(this === global) // without 'use strict', true; with strict mode, false
        console.log(this === undefined) //without 'use strict', false; with strict mode, true
    }
    
    Person()

    Inside a function, 

    • strict mode, 'this' is undefined
    • without strict mode, 'this' is global
    "use strict";
    
    console.log(this === global)  // false, in REPL this === global
    console.log(this === module.exports) // true
    
    function Person(firstName, lastName) {
        console.log(this === global) // without 'use strict', true; with strict mode, false
        console.log(this === undefined) //without 'use strict', false; with strict mode, true
        this.firstName = firstName;
        this.lastName = lastName;
    }
    
    const person = new Person("Jane", "Doe");
    console.log(person);
    console.log(global.firstName); //undefined
    console.log(global.lastName); //undefined
  • 相关阅读:
    如何判断网页中引入jquery
    回车事件jquery
    bootcss
    jquery 固定导航
    vs2012常用快捷键总结
    网页上新闻,多余内容用....(省略号)代替
    git的使用
    vue获取点击事件源的方法
    JS实现复制功能
    AdminLTE 学习笔记
  • 原文地址:https://www.cnblogs.com/Answer1215/p/8023382.html
Copyright © 2011-2022 走看看