zoukankan      html  css  js  c++  java
  • 浏览器学习笔记-11 settimeout

    settimeout

    使用

    语法

    setTimeout(code,millisec)
    
    参数 描述
    code 必需。要调用的函数后要执行的 JavaScript 代码串。
    millisec 必需。在执行代码前需等待的毫秒数。最低延时是 4ms

    this

    超时调用的代码都是在全局作用域中执行的,因此函数中this的值在非严格模式下指向window对象,在严格模式下是undefined

    1.
    
    setTimeout("alert(this)", 1);   //alert: [object Window]
    
    2.
    
    var obj = {
        say : function () {
            setTimeout(function () {
                console.log('setTimeout:'+this);
            },0);
        },
        hello : function () {
            console.log('hello:'+this);
        }
    };
    obj.say();   //setTimeout:[object Window]
    
    obj.hello();   //hello:[object Object]
    
    3.
    var hello = function () {
        alert( this );
    }
    var obj = {
        say : function () {
            setTimeout( hello ,1 );
        }
    };
    obj.say();   //[object Window]
    
    
    4.
    var value = 33;
    
    function Foo() {
        var value = 42;
        setTimeout(function() {
            alert(value);
            alert(this.value)
        }, 500); // 先输出 42 然后输出33  这里的this是第二个this
    }
    new Foo();
    
    5.
    var obj = {
      name: 'hutaoer',
      say: function() {
        var self = this;
        setTimeout(function(){
          alert(self);   // 输出 object ,指向obj
          alert(this);   // 第二个this,指向window,我心永恒,从未改变
          alert(self.name)  // 输出 hutaoer
        }, 0)
      }
    }
    
    obj.say();
    
    6.
    
    var value=33;
    function Foo() {
        var value = 42;
        function ff() {
          alert(value);  // 42
          alert(this.value);  // 33
        }
        setTimeout(ff, 500);  // 先后输出 42   33
    }
    Foo(); // 直接执行,跟普通函数没有区别
    
    

    一、setTimeout中的延迟执行代码中的this永远都指向window
    二、setTimeout(this.method, time)这种形式中的this,即上文中提到的第一个this,是根据上下文来判断的,默认为全局作用域,但不一定总是处于全局下,可能处于对象内部。
    三、setTimeout(匿名函数, time)这种形式下,匿名函数中的变量也需要根据上下文来判断,根据函数作用域,有函数的位置的词法作用域来确定。

  • 相关阅读:
    图像中的傅立叶变换(二)
    图像中的傅立叶变换(一)
    最大似然估计
    论文笔记:Batch Normalization
    TensorFlow学习笔记:共享变量
    postman管理收藏夹,批量执行接口
    postman设置token关联参数,其他接口直接读取token变量
    appium+python+unittest+HTMLRunner编写UI自动化测试集
    appium自动化环境搭建(python语言开发)
    Fiddler抓取https数据包
  • 原文地址:https://www.cnblogs.com/SLchuck/p/13738592.html
Copyright © 2011-2022 走看看