zoukankan      html  css  js  c++  java
  • 关于this

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>关于this</title>
    </head>
    <body>
    <div id="box"></div>
    <script>
    //this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this最终指向的是那个调用他它的对象(这句话有点误差,但是绝大多数情况下符合)
    // 情况一:如果一个函数中有this,但是它没有被上一级的对象所调用,那么this指向的就是window,(严格模式中的this指向的不是window)
    // 情况二:如果一个函数中有this,这个函数有被上一级的对象所调用,那么this指向的就是上一级的对象.
    // 情况三:如果一个函数中有this,这个函数中包含多个对象,尽管这个函数是被最外层的对象所调用,this指向的也只是它上一届的对象.
    //当this遇到return,如果返回值是一个对象(null除外),那么this指向的就是那个返回的对象,如果返回值不是一个对象,那么this指向函数的实例。
    //实例一:
    function fn1() {
    this.user = "aaa";
    return {};
    }
    var a = new fn1
    console.log(a.user) //undefined
    //实例二:
    function fn2() {
    this.user = "aaa";
    return function () {
    };
    }
    var b = new fn2
    console.log(b.user) //undefined
    //实例三:
    function fn3() {
    this.user = "aaa";
    return 1;
    }
    var c = new fn3
    console.log(c.user) //aaa
    //实例四:
    function fn4() {
    this.user = "aaa";
    return undefined;
    }
    var d = new fn4
    console.log(d.user) //aaa
    //实例五:
    var f = {
    user:"bbb",
    age:2
    }
    function fn5() {
    this.user = "aaa";
    return f;
    }
    var e = new fn5
    console.log(e.user) //bbb

    var o = {
    a:10,
    b:{
    a:12,
    fn:function () {
    console.log(this.a)
    }
    }
    }
    o.b.fn() //12
    </script>
    </body>
    </html>
  • 相关阅读:
    windows环境下pycharm如何设置Linux编码
    centos安装Nginx1.9.9
    http无状态协议,cookie和session详解(一)
    windows7安装flaskmysqldb遇到的坑
    python文件处理b模式
    windows7安装MySQLpython遇到的坑
    flask数据库迁移理解及命令
    Python循环文件推荐的方式,可用于读取文本最后一行或删除指定行等
    XMLHttpRequest
    Javascript鼠标事件
  • 原文地址:https://www.cnblogs.com/kaw19950302/p/7599350.html
Copyright © 2011-2022 走看看