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>
  • 相关阅读:
    cocoaPod
    Swift 命名规则
    Swift 数据类型
    Xcode Version 和Bulid 区别
    升级Xcode之后VVDocumenter-Xcode不能用的解决办法
    Mac svn
    RSA 加密
    想做AI测试,需要学习哪些数学知识?
    selenium + firefox驱动版本对应。
    开机自动启动WEB服务,共享目录。
  • 原文地址:https://www.cnblogs.com/orchid/p/2021567.html
Copyright © 2011-2022 走看看