zoukankan      html  css  js  c++  java
  • javascript的上下文对象

    this,who are you?

    这个问题有时很重要。

    概括的来讲:this是个引用,永远指向当前代码所处的对象中。

    还有个需要注意的技巧:如何动态的改变这个this?也就是说我能规定this是谁吗?

    答案是可以的,你可以控制这件事。可以用call()函数和apply()函数。call()和apply()是Function.prototype对象中的方法,也就是说任何函数都有一个call和apply方法,用这个方法可以定义该方法执行的上下文(this)和参数。

    看代码:

     

    输出:

     

    apply和call把第一个参数定义为上下文对象,也就是this的指向,其余参数作为函数的参数。不同的是apply的第二个参数是参数数组。 

    在<javascript精粹>中看到这样一个利用apply函数的例子,觉得很用。 

    每个函数都自带一个arguments参数,里面是参数列表,这个arguments有点像数组但是不是数组,下面代码将arguments神奇的转换为数组。


     <script>

    var arg2array=function(){                
    document.write(arguments.constructor); 
     //可以看出现在arguments是object类型
    arg=Array.prototype.slice.apply(arguments);
                    document.write("</br>");
    document.write(arg.constructor);//现在的arg是Array
                }
    arg2array(1,2,3,4);
    </script>
  • 相关阅读:
    红蓝对抗
    SQLMAP用法大全
    Web安全工程师(进阶)课程表
    msf连接PostgreSQL数据库
    我的web安全工程师学习之路——规划篇
    web安全深度剖析pdf
    js面试题
    js克隆一个对象
    js面试必考:this
    前端面试:js数据类型
  • 原文地址:https://www.cnblogs.com/orchid/p/2021567.html
Copyright © 2011-2022 走看看