详细说说ActionScript中function的call()方法和apply()方法

简介: 详细说说ActionScript中function的call()方法和apply()方法 今天看到function的call和apply这两个方法,上网查了一下,有人说这两个方法是用来动态改变函数指向,并给了一个例子:如下  import customize.

详细说说ActionScript中function的call()方法和apply()方法

今天看到function的call和apply这两个方法,上网查了一下,有人说这两个方法是用来动态改变函数指向,并给了一个例子:如下

 import customize.my_class;
   
    public var _property:String;
   
    public function init():void
    {  
        var fn:Function = new Function();
        fn = function(...args):void
        {
            this._property = args;
        }
    
        var __obj:my_class = new my_class();
        //fn.call(__obj, "给属性赋值");
        fn.apply(__obj, new Array("给属性赋值"));
    
       trace(__obj._property);
    }
=====================================
定义的my_class类
public class my_class
{
      public var _property:String;
      public function my_class()
      {
          this._property = "somiok";
      }

从上面代码可见fn函数是用函数表达式形式申明的,此时是可以动态改变函数指向的(也就是函数的this关键字随着函数的附着而改变)。

而我用函数语句形式试了一下,函数并不能动态改变自己的指向,只能起到执行函数的作用。

import customize.my_class;

public var _property:String;

public function init():void

 var __obj:my_class = new my_class();
 //fn.call(__obj, "给属性赋值");
 fn.apply(__obj, new Array("给属性赋值"));
 
 trace(__obj._property);
}

private function fn(...args):void
{
 this._property = args.toString();
}
=====================================
 定义的my_class类
public class my_class
{
 public var _property:String;
 public function my_class()
 {
  this._property = "somiok";
 }
}

后来查了黑羽老大的书:函数语句定义法和函数表达式定义法的不同还体现在this关键字的记忆上。使用函数语句定义法,则this关键字牢牢指向当前函数定义的域;若使用函数表达式定义法,则随着函数附着的对象不同,this关键字也随之改变。

语句定义法需先声明后调用的原则。

总结:如果函数是函数语句定义的形式:则call方法和apply方法只起到执行函数的作用。

如果函数是函数表达式定义形式:则call方法和apply方法起到动态改变函数指向,同时改变被指向类的一些属性。

posted @ 2010-06-30 18:04 硕气书生 Views(201) Comments(0) Edit 收藏
1768523.html?type=1&webview=1
相关文章
|
3月前
|
数据采集 自然语言处理 Devops
ToolLearning Eval:CodeFuse发布首个中文Function Call的大语言模型评测基准!🚀
CodeFuse发布了首个面向ToolLearning领域的中文评测基准ToolLearning-Eval,以帮助开发者跟踪ToolLearning领域大模型的进展,并了解各个ToolLearning领域大模型的优势与不足。ToolLearning-Eval按照Function Call流程进行划分,包含工具选择、工具调用、工具执行结果总结这三个过程,方便通用模型可以对各个过程进行评测分析。
252 0
|
5月前
Fatal error: Call to undefined function openssl_pkey_get_private()
Fatal error: Call to undefined function openssl_pkey_get_private()
35 0
|
4月前
|
Python
Python(二十九)pycharm连接调试器失败 Interrupted function call accept failed~
Pycharm在使用调试器模式时报错: Interrupted function call: accept failed
76 0
|
8月前
|
监控 Linux Apache
访问zabbix安装页面报错500,apache报错Call to undefined function mb_detect_encoding()
访问zabbix安装页面报错500,apache报错Call to undefined function mb_detect_encoding()
139 0
|
9月前
|
PHP
PHP报错Call to undefined function utf8_decode()的解决方案
PHP报错Call to undefined function utf8_decode()的解决方案
|
10月前
|
搜索推荐 Java API
基于OpenAI Function Call 结合Lucene实现本地化的知识搜索
这是一个OpenAI Function 接入的Demo,通过Lucene+OpenAI实现个人知识库,但是目前只有服务端,没有页面之类的东西,并且实现的非常简单,所以只能当做一个Demo使用。
335 0
基于OpenAI Function Call 结合Lucene实现本地化的知识搜索
|
18天前
|
资源调度 Serverless 计算机视觉
高斯函数 Gaussian Function
**高斯函数,或称正态分布,以数学家高斯命名,具有钟形曲线特征。关键参数包括期望值μ(决定分布中心)和标准差σ(影响分布的宽度)。当μ=0且σ²=1时,分布为标准正态分布。高斯函数广泛应用于统计学、信号处理和图像处理,如高斯滤波器用于图像模糊。其概率密度函数为e^(-x²/2σ²),积分结果为误差函数。在编程中,高斯函数常用于创建二维权重矩阵进行图像的加权平均,实现模糊效果。
14 1
|
1月前
|
算法 Serverless C语言
CMake函数和宏(function和macro):使用函数和宏提高代码可读性
CMake函数和宏(function和macro):使用函数和宏提高代码可读性
30 1
|
1月前
|
存储 安全 编译器
【C++ 包装器类 std::function 和 函数适配器 std::bind】 C++11 全面的std::function和std::bind的入门使用教程
【C++ 包装器类 std::function 和 函数适配器 std::bind】 C++11 全面的std::function和std::bind的入门使用教程
32 0

热门文章

最新文章