zoukankan      html  css  js  c++  java
  • javascript学习笔记(2)————this

     1 //简单的学习JavaScript中this关键词
     2 //this在于我简单的理解就是谁调用了当前方法(函数),this就指向谁
     3 
     4 var a = 20;
     5 function fn1(){
     6     this.a = 10;
     7 }
     8 
     9 fn1();                 //其实这里隐含了window对象 window.fn1() === fn1()
    10 alert(this.a);         //10;
    11 alert(window.a);    //10;
    12 
    13 alert(fn1.a);        //undefined 
    14                     //这里出现undefined,是因为fn1函数并没有自己调用a.
    15 var fn1 = new fn1();
    16 alert(fn1.a);         //10; 使用new关键字 js内部大概经历: 1)建立一个空对象 2)this关键字指向空对象 3)空对象赋值给fn1
    17                     //所以出现this就指向fn1的情况
    18 
    19 //初学的时候很容易犯这样的错误
    20 
    21 var oBox = document.getElementById('bob');
    22 oBox.onclick = function(){
    23     this.style.backgroundColor = 'red'; //这里this指向oBox
    24     function abc(){
    25         this.style.display = 'block';    //这里this暂时不清楚指向谁,因为还没有被调用
    26     }
    27     abc();//刚开始的很容易犯迷糊,以为这里oBox的模型是块模型
    28           //其实这里发生的window.style.display = 'block';
    29           //因为其实window调用的。其实有个很简单的方式,因为 abc()前面就没有oBox.而是隐藏的window
    30 }
    31 
    32 
    33 //下面在对象下的调用
    34 var color = 'black';
    35 
    36 var obj = {
    37     color :'blue'38     saycolor : sayColor
    39 }
    40 
    41 var obj2 = {
    42     color :'red',
    43     saycolor : sayColor
    44 }
    45 
    46 function sayColor(){
    47     console.log(this.color);
    48 }
    49 
    50 sayColor(); //'black';
    51 obj.saycolor();//'blue';
    52 obj2.saycolor();//'red'
  • 相关阅读:
    1061 Dating (20 分)
    1112 Stucked Keyboard (20 分)
    1077 Kuchiguse (20 分)
    1065 A+B and C (64bit) (20 分)
    1046 Shortest Distance (20 分)
    1124 Raffle for Weibo Followers (20 分)
    1036 Boys vs Girls (25 分)
    1113 Integer Set Partition (25 分)
    f开头的
    g开头的
  • 原文地址:https://www.cnblogs.com/niunai007/p/5017730.html
Copyright © 2011-2022 走看看