zoukankan      html  css  js  c++  java
  • JavaScript设计模式与开发实践(一)

    一、this

    this的指向大致可以分为以下几种:

    • 作为对象的方法调用
    • 作为普通函数调用
    • 构造器调用
    • Function.prototype.call或Function.prototype.apply

    1.作为对象调用

    当函数作为对象的方法被调用,this指向该对象:

    var obj = {
        a:1,
        getA:function(){
            alert(this === obj);  //输出true
            alert(this.a);    //输出1
        }
    };
    
    obj.getA();

    当函数作为普通函数被调用,this指向全局对象(浏览器中指window对象)

    window.name = 'globalName';
    
    var getName = function(){
        return this.name;
    }
    
    console.log(getName());    //输出:globalName
    
    或者
    
    window.name = 'globalName';
    
    var muObject = {
        name: 'sven',
        getName: function(){
            return this.name;
        }
    };
    
    var getName = myObject.getName;
    console.log(getName());    //输出: globalName

    构造器里的this指向返回的对象

    var MyClass = function(){
        this.name = 'sven';
    };
    
    var obj = new MyClass();
    alert(obj.name);    //输出:sven

    call和apply动态的改变传入函数的this

    var obj1 = {
        name: 'sven',
        getName:function(){
            return this.name;
        }
    };
    
    var obj2 = {
        name:'anne'
    };
    
    console.log(obj1.getName.call(obj2));    //输出: ‘anne’
  • 相关阅读:
    夯实Java基础(六)——包装类
    JavaWeb:Cookie
    JavaWeb:HttpServletResponse
    JavaWeb:ServletResponse
    JavaWeb:HttpServletRequest
    JavaWeb:ServletRequest(二)
    JavaWeb:ServletRequest(一)
    JavaWeb:HttpServlet
    JavaWeb:GenericServlet
    Spring:Spring Cloud 2020 年维护路线图
  • 原文地址:https://www.cnblogs.com/zyxiaohuihui/p/8414450.html
Copyright © 2011-2022 走看看