当前位置: 首页 > news >正文

专业建设网站站长之家查询域名

专业建设网站,站长之家查询域名,手机网站下拉刷新,韩国网站加速器(1)在全局环境中的this——window 无论是否在严格模式下,在全局执行环境中(在任何函数体外部)this 都指向全局对象。 "use strict"console.log(this); //windowconsole.log(thiswindow);//true &#xff08…

(1)在全局环境中的this——window
无论是否在严格模式下,在全局执行环境中(在任何函数体外部)this 都指向全局对象。

      "use strict"console.log(this); //windowconsole.log(this===window);//true

(2)在函数中的this——window
在函数内部,this的值取决于函数被调用的方式。   

     function f() {console.log(this); //windowconsole.log(this===window);//true}f()console.log(f()===window.f()); //true

因为定义的函数在全局作用域下定义的 

(3)函数在严格模式下——undefined

 function f() {"use strict"console.log(this); //undefinedconsole.log(this === window); //false}f()

上面的f是直接调用的指向undefined 

      function f() {"use strict"console.log(this); //windowconsole.log(this === window); //true}window.f()

有一些浏览器最初在支持严格模式时没有正确实现这个功能,于是它们错误地返回了window对象。

 (4)对象中的this——指向调用者

    let obj = {fn: function () {console.log(this);}}obj.fn() //指向obj这个对象


(5)栗子①

    function fun() {console.log(this.name);}let obj = {name: '思思',fn: fun}var name = "七七"obj.fn()  //思思fun()    //七七

obj.fn() 是obj 调用的所以去找obj里面的name 

fun是window调用的所以去找全局里面的this.name

(6)栗子②

    var obj1 = {name: '七七',f: function () {console.log('姓名:' + this.name);}}var obj2 = {name: '思思'}obj2.f = obj1.fobj1.f() //姓名:七七obj2.f() //姓名:思思

把obj1.赋值给obj2.f  obj2也有了f 方法 

(7)栗子③

      function foo() {console.log(this.a);}var obj2 = {a:2,fn:foo}var obj1={a:1,o1:obj2}obj1.o1.fn() //2

 obj1里面的o1是obj2  obj2里的fn是foo函数   在obj2里面调用的拿到obj2中的a

(8)事件绑定中的this 

 <button onclick="Hclick()">点击事件</button>
<script>function Hclick() {console.log(this);}
</script>

 由于还是在当前window环境下运行的还是指向window

  <button onclick="console.log(this)">点击事件</button>

运行在节点对象中 指向当前dom

(9)动态绑定

<button>动态绑定</button>
<script>let btn=  document.getElementsByTagName('button')[0].onclick=function(){console.log(this);    }
</script>

指向当前dom

(10)addEventlistenr——当前dom

     let btn = document.getElementsByTagName('button')[0].addEventListener('click',function () { console.log(this); })

指向当前dom <button>动态绑定</button>   

    let btn = document.getElementsByTagName('button')[0].addEventListener('click',()=>{console.log(this);})

换成箭头函数后 this指向当前作用域下的上级作用域的this    window 

(11)构造函数中的this——当前实例化对象

   function Pro() { this.x='1'this.y=function(){ console.log(this);}}var p = new Pro()p.y()

通过构造函数创建了一个新的实例对象  所以当前的this指向新的实例对象

(12)定时器中的this——window  

   setInterval(function () {console.log(this)  },1000)

this指向当前window

小扩展

       var MyClass = function () {this.name = 1;}var myClass = new MyClass();console.log('myClass:', myClass);

当有了返回值以后

        var MyClass = function () {this.name = 1;return {name: 2}}var myClass = new MyClass();console.log('myClass:', myClass);

会把return的内容放在构造函数中 
 

http://www.khdw.cn/news/13598.html

相关文章:

  • 东莞新感染一例阳性seo刷排名公司
  • 发改委政务网站建设网络推广引流
  • 可以做长页的网站平台推广是做什么的
  • 一站式营销推广网络营销案例范文
  • 网站建设 样板百度搜索排名优化
  • 江苏省建设工程网站系统发稿网
  • 泰州专一做淘宝网站如何接广告赚钱
  • 可视化网站建设软件有哪些小红书网络营销策划方案
  • 广西网站设计公司排行榜社会化媒体营销
  • 盗版软件做的网站会被起诉吗百度seo点击工具
  • 二级栏目网站免费建站的网站
  • 专业类网站企业如何进行宣传和推广
  • wordpress实例网站seo推广营销公司
  • 设计网站公司地址郴州网站seo外包
  • 微网站制作价格湖南优化电商服务有限公司
  • 购物网站风格互联网营销策划是做什么的
  • 网站说服力 营销型网站策划 下载seo专员是指什么意思
  • 做一个网站怎么做线上营销怎么推广
  • 公司网站seo外包怎么做电商卖东西
  • 做网站白云东莞网络推广优化排名
  • 三亚做网站口碑营销经典案例
  • 做网站项目需求分析是什么域名查询工具
  • 好看的网站后台模板百度游戏排行榜风云榜
  • 销售公司怎么做网站html网页制作步骤
  • wordpress 全站 下载百度快快速排名
  • 上海集团网站建设百度电脑网页版
  • 手机网站会员中心模板下载深圳债务优化公司
  • 抖音官方网站在线客服网站关键词查询
  • vps一定要Wordpress吗长沙靠谱seo优化价格
  • 泊头做网站电话东莞企业网站设计公司