zoukankan      html  css  js  c++  java
  • javaScript中的 this

    普通函数中的 this

        // es3中
    function foo() {
        console.log(this);// 这里的this是 window
    }
    foo();
    
    // 在es5中 严格模式下
    function foo() {
        'use strict'
        console.log(this);// 这里的this是 undefined
    }
    foo()
    

    对象方法中的 this

    1.对于字面量方法中的this 指的是字面量那个变量 (obj)

    var obj = {
        info: 'tom',
        showInfo: function(){
            console.log(this.info); // 这里的this 是 obj
        }
    }
    
    console.log(obj.showInfo()); //  undefined 这里的undefined是函数的返回值
    
    var ret = obj.showInfo();
    console.log(ret); // undefined
    
    

    构造函数中的 this

    1. 对于构造函数方法中的 this 指的是实例化出来的实例对象 如 f1,f2
    function Foo(name,age){
        // 这里的this指的是具体的某个实例 f1 或者 f2
        this.name = name;
        this.age = age;
        this.showName = function () {
            // 这里的this指的是具体的某个实例 f1 或者 f2
            console.log(this.name);
        }
    }
    var f1 = new Foo('zhangsan',1);
    f1.showName(); // zhangsan
    var f2 = new Foo('lisi',2);
    f2.showName(); // lisi
    
    

    面向对象中的 this

    1. 这里的this 指的是该构造函数创建出来的实例
    function Foo(info) {
        // 这里的this 指的是该构造函数创建出来的实例,这个this和原型中的this是同一个指向
        this.info = info;
    }
    Foo.prototype.showInfo = function () {
        // 原型里面的this 指的是通过原型所属的构造函数创建出来的实例
        console.log(this.info);
    }
    
    var f1 = new Foo('hello');
    f1.showInfo(); // hello
    
    
  • 相关阅读:
    如何手动卸载 SQL Server 2005 实例
    马大哈的读后感
    CVS提交0KB的文件失败
    confluence权限管理
    关于confluence注册
    建议使用j2ee自带的ant
    cvs log的几个选项说明(b,r HEAD,n,d)
    JIRA与Confluence的安装与集成(4)
    使用命令行调用Beyond Compare进行文件对比
    利用SecureCRT实现Linux编译
  • 原文地址:https://www.cnblogs.com/ybixian/p/9131450.html
Copyright © 2011-2022 走看看