zoukankan      html  css  js  c++  java
  • js学习难点

    JS学习难点:

    this关键字

    面向对象语言中 this 表示当前对象的一个引用。
    
    但在 JavaScript 中 this 不是固定不变的,它会随着执行环境的改变而改变。
    
    在方法中,this 表示该方法所属的对象。
    如果单独使用,this 表示全局对象。
    在函数中,this 表示全局对象。
    在函数中,在严格模式下,this 是未定义的(undefined)。
    在事件中,this 表示接收事件的元素。
    类似 call() 和 apply() 方法可以将 this 引用到任何对象。
    详细:https://www.runoob.com/js/js-this.html

      

    在js中,this指向执行函数的对象

    在HTML中默认的全局对象是HTML页面本身,所以函数属于HTML页面

    在浏览器中的页面对象是浏览器窗口(window对象)。

    •   函数没有被对象调用(全局对象):
    function myFunction() {
        return this;
    }
    myFunction();                // 返回 window 对象
    
    •   函数作为方法被调用:
    var myObject = {
        firstName:"John",
        lastName: "Doe",
        fullName: function () {
            return this.firstName + " " + this.lastName;
        }
    }
    myObject.fullName();         // 返回 "John Doe"
    

    this指向myObject对象

    • 作为函数方法调用函数:

    在 JavaScript 中, 函数是对象。JavaScript 函数有它的属性和方法。

    call() 和 apply() 是预定义的函数方法。 两个方法可用于调用函数,两个方法的第一个参数必须是对象本身。

    function myFunction(a, b) {
        return a * b;
    }
    myObject = myFunction.call(myObject, 10, 2);     // 返回 20
    

      

    function myFunction(a, b) {
        return a * b;
    }
    myArray = [10, 2];
    myObject = myFunction.apply(myObject, myArray);  // 返回 20
    

      

    两个方法都使用了对象本身作为第一个参数。 两者的区别在于第二个参数: apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入,而call则作为call的参数传入(从第二个参数开始)。

    在 JavaScript 严格模式(strict mode)下, 在调用函数时第一个参数会成为 this 的值, 即使该参数不是一个对象。

    在 JavaScript 非严格模式(non-strict mode)下, 如果第一个参数的值是 null 或 undefined, 它将使用全局对象替代。

     

     

     

     var,let作用域

    异步

    promise

  • 相关阅读:
    SQL注入过滤
    ASP.NET长文章分页
    简单的权限管理类
    不错的面试题
    【转载】【重要】Ubuntu Linux 下 Ffmpeg 及 Mencoder 安装使用小结
    回到xwindows
    suse11 linux不自动启动xwindows
    flash的几种工具
    mencoder和ffmpeg参数详解
    ffmpeg和Mencoder使用实例小全
  • 原文地址:https://www.cnblogs.com/1zhangwenjing/p/13749918.html
Copyright © 2011-2022 走看看