zoukankan      html  css  js  c++  java
  • 函数/方法的活动对象

    前面记录了声明函数的一些概要,当然并非如此只言片语就能讲到精髓所在,下面便来说说执行函数时所发生的一些事情。

    当我们普通执行一个函数的时候,就像这样:

    1 function fn(){
    2      //这是代码块       
    3 }
    4 fn()

    这种情况我们普遍称之为函数,如下面的

    1 var obj = {
    2     fn:function(){
    3          //这是代码块   
    4     }
    5 }
    6 obj.fn()

    在对象中调用的函数,我们称之为方法,好了,下面进入正题。

    我们在执行一个函数/方法的时候都做了什么;

    函数在javascript中,属于引用类型的数据,所以在执行函数的时候,首先会找到这个函数的引用地址,当然这个过程中会判断与之绑定的标识符的类型是否为一个function,

    如果是,则会执行代码块,如果不是,浏览器则会报一个xxx is not a function的类型错误,如果没找到,当然就会报一个为定义的错误not define;

    在执行过程中函数/方法会有一个活动对象,我们假设这个活动对象就是一个空对象,并且里面所有的属性/方法都不需要这个空对象做为前缀就可以调用;

     function fn(p1,p2){
        {//多有的变量都放在这个活动对象中
            argments:[p1,p2],
            p1:unfined,
            p2:unfined,
            x:55,
    this://window,this的值根据执行环境变化
    } var x = 55 } fn()

    当然,以上代码中就有许多是个人遐想了,这样更方便我理解活动对象这个东西,所以,一个变量或者说标识符在作用域链上查值的过程,就是在一个个活动对象上查值的过程,查到最后window对象上,如果没有查到,那么就会报一个not define;

  • 相关阅读:
    修改centos7 DNS
    group by
    Oracle 删除表空间
    Oralce查看sid 、service_name
    Mysql修改lower_case_table_names
    Oralce静默安装
    Linux安装Mysql
    dbvisualier破解及使用
    Oracle扩容表空间
    lvm方式挂载盘及扩容
  • 原文地址:https://www.cnblogs.com/Amy-so/p/4987013.html
Copyright © 2011-2022 走看看