首页 > Web开发 > 详细

对js中this的理解

时间:2021-02-28 10:52:01      阅读:19      评论:0      收藏:0      [点我收藏+]

1、说说你对 this 的理解

  1、this是Javascript语言的一个关键字,它代表函数运行时自动生成的一个内部对象,只能在函数内部使用。this指的是调用函数的那个对象。his的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象

2、call\apply\bind 的区别和联系?

  在JS中,这三者都是用来改变函数的this对象的指向的
    call()和apply()的区别:
      相同点:都是调用一个对象的一个方法,用另一个对象替换当前对象(功能相同)
      不同点:参数书写方式不同
        call()的第一个参数是this要指向的对象,后面传入的是参数列表,参数可以是任意类型,当第一个参数为null、undefined的时候,默认指向window;
        apply():第一个参数是this要指向的对象,第二个参数是数组
    call()和bind()的区别:
      相同点:都是用来改变this的指向
      不同点:call()改过this的指向后,会再执行函数,bind()改过this后,不执行函数,会返回一个绑定新this的函数

3、下面代码执行结果

 1  <script>
 2             var hellword = (function(){
 3                 console.log(hello one) ;
 4                 setTimeout(function(){
 5                     console.log(hello two) ;
 6                 },100) ;
 7                 setTimeout(function(){
 8                     console.log(hello three) ;
 9                 },0) ;
10                 console.log(hello four) ;
11             }()) ;
12     </script>

  执行结果:

      hello one
      hello four
      hello three
      hello two

4、下面代码的执行结果

1  <script>
2             var a = {
3                 id : 10 
4             }
5             b = a ;
6             b.id = 1 ;
7             b.name = test ;
8             console.log(a) ;
9     </script>

  执行结果:

  id:1

  name:test

 

对js中this的理解

原文:https://www.cnblogs.com/gaobz/p/14458131.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!