haxe中bind

  var sx:Int = 10;
    var sy:Int = 20;
    private function call(fn:Void->Void):Void{
        fn();
    }
    private function gogo(xx:Int,yy:Int):Void{
        trace("xx:"+xx,"yy:"+yy);
        trace("sx:"+sx,"sy:"+sy);
    }

call(gogo.bind(sx,sy));

输出:xx:10   yy:20

   sx:10  yy:20

Timer.delay(gogo.bind(sx,sy),1000);
//call(gogo.bind(sx,sy));
        sx= sy = 10;

输出:xx:10  yy:20

  sx:10  sy:10

绑定时数值类型的数据会直接传入数值,那么引用类型的呢?

 sp= new FlxSprite();
        _testGroup.add(sp);//一个displayobjectcontainer
        call(gogo.bind(sp));
        Timer.delay(gogo.bind(sp),1000);
        sp.alpha = 0;

   var sp:FlxSprite;
    private function call(fn:Void->Void):Void{
        fn();
    }
    private function gogo(sp:FlxSprite):Void{
        trace("alpha"+sp.alpha);
    }

输出:alpha1

  alpha0

结论:基本数据类型传的是当时的数据,引用类型的变量传的是引用

时间: 2024-08-05 07:41:11

haxe中bind的相关文章

jQuery中 .bind() .live(). delegate() . on() 的区别

jQuery中   .bind()    .live().   delegate() .   on()  的区别 这几种方法都是绑定事件用到的,但是他们之间有些差别 bind(type,[data],fn) 为每个匹配元素的特定事件绑定事件处理函数 例如: <ul> <a href="#"><li>1111111</li></a> <a href="#"><li>22222</

【转载】JS中bind方法与函数柯里化

原生bind方法 不同于jQuery中的bind方法只是简单的绑定事件函数,原生js中bind()方法略复杂,该方法上在ES5中被引入,大概就是IE9+等现代浏览器都支持了(有关ES5各项特性的支持情况戳这里ECMAScript 5 compatibility table),权威指南上提到在ES3中利用apply模拟该方法的实现(JS权威指南中函数那章), 但无法真实还原该方法, 这也是真bind方法中的有趣特性. (原文这边理解有问题, 这段话的意思如果结合犀牛书上下文的意思, 再结合犀牛书中

haxe 中使用音效

将wavSound.wav音效文件放到assets/sounds下, 在project.xml加入以下代码: <assets path="assets/sounds" rename="sounds" /> 主文档类Main.hx如下: package; import openfl.Assets; import openfl.display.MovieClip; import openfl.display.Sprite; import openfl.med

jQuery中bind方法和live方法区别解析

Javascript中的事件有它的独特性,有默认的执行事件,例如冒泡就是其中的一个.在很多比较复杂的应用程序中,停止事件的冒泡或捕获在程序开发当中是十分有用的,而在IE中有它的独特方式来阻止事件的冒泡(和其它浏览器方式不同). 以下给出一种通用的方式来实现阻止事件的冒泡,该通用方式接受一个参数[传递到事件处理程序中的事件对象],该函数处理取消事件冒泡的两种方式:标准的W3C方式和非标准的IE方式: 什么是事件冒泡[又称为事件传播]:当我们点击一个元素时,它会触发bind在该元素上的click事件

JQ中bind(),live(),delegate()事件方法的区别

[导读] bind(), live(), 和 delegate()这三个方法的区别并不是非常明显.弄清楚这些区别对我们写出简介的代码和预防我们的应用中出现bugs是非常有帮助的. jQuery团队在1 7版本中发布了一个用于绑定事件的新方法叫 bind(), .live(), 和 .delegate()这三个方法的区别并不是非常明显.弄清楚这些区别对我们写出简介的代码和预防我们的应用中出现bugs是非常有帮助的. jQuery团队在1.7版本中发布了一个用于绑定事件的新方法叫做on.这个方法包含

面试官:能解释一下javascript中bind、apply和call这三个函数的用法吗

一.前言    不知道大家还记不记得前几篇的文章:<面试官:能解释一下javascript中的this吗> 那今天这篇文章虽然是介绍javascript中bind.apply和call函数,但是多少也和this有点关联. 假如在前面那场面试末尾,面试官不依不饶继续问你javascript中的this,那看完本篇文章后一定还会有收获. (本篇文章不会站在this的角度去回答问题,而是重于解释bind.apply和call这三个函数的用法和使用场景) 二.正戏开始 面试官:能解释一下javascr

JavaScript中bind、call、apply函数用法详解

在给我们项目组的其他程序介绍 js 的时候,我准备了很多的内容,但看起来效果不大,果然光讲还是不行的,必须动手.前几天有人问我关于代码里 call() 函数的用法,我让他去看书,这里推荐用js 写服务器的程序猿看<javascript编程精粹> 这本书,crockford大神果然不是盖的.之后我在segmentfault上又看到了类似的问题,那边解答之后干脆这里记一笔. 首先,关于 js 定义类或对象的方法,请参看w3school 的这里的这里,写的非常详细和清晰,我不再赘言了. 为了介绍 b

JavaScript--------------------jQuery中.bind() .live() .delegate() .on()的区别 和 三种方式写光棒事件 动画

bind(type,[data],fn) 为每个匹配元素的特定事件绑定事件处理函数. $("a").bind("click",function(){alert("ok");}); live(type,[data],fn) 给所有匹配的元素附加一个事件处理函数,即使这个元素是以后再添加进来的 $("a").live("click",function(){alert("ok");}); de

jQuery中.bind() .live() .delegate() .on()区别

on(events,[selector],[data],fn) 在选择元素上绑定一个或多个事件的时间处理函数 $('#members').on('click','li a',function(){}); bind(type,[data],fn)为每个匹配元素的特定事件绑定事件处理函数: $('a').bind('click',function(){}) live(type,[data],fn) 给所有匹配的元素附加一个事件处理函数,即使这个元素是后来添加的 $("a").live('c