JavaScript中this在不同场景所代表的主体

1.首先this是什么?
任何函数本质上都是通过某个对象调用的,如果没有直接指定就是window
所有函数内部都有一个变量this
它的值是调用函数的当前对象

2.在不同场景this代表什么,即如何确定this的值?
test(): window
p.test(): p
new test(): 新建的对象
p.call(obj): obj

以下通过代码来体现出this在不同场景所代表的主体:


<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>07_函数中的thistitle>
head>
<body>


<script type="text/javascript">

    function Person(color){
      
        console.log(this);
        this.color = color;
        this.getColor = function(){
      
            console.log(this);
            return this.color;
        };
        this.setColor = function(color){
      
            console.log(this);
            this.color = color;
        };
    }

    Person("red");  //this是谁?  window
  
    var p = new Person("yello");  // this是谁?  p

    p.getColor(); //this是谁?  p

    var obj = {
      };
    p.setColor.call(obj,"black"); //this是谁?  obj
    
    var test = p.setColor;
    test("tomato"); //this是谁?  window

    function fun1(){
      
        function fun2(){
      
          console.log(this);
        }
        fun2();  //this是谁?  window
    }
    fun1();
script>
body>
html>

你可能感兴趣的:(JavaScript,javascript,css,this,html)