首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏菩提树下的杨过

    as3:Function以及call,apply

    Function类在as3中是直接从Object继承下来的,通常开发者定义的每一个function,均可以认为是Function类的一个实例。  来看下as3是怎么做的? 但即使都当作"委托"来用,也有明显的区别:as3中不用强制定义“委托”的方法签名。 但是我们可以借助Function类的apply以及call方法,显式改变this指针的指向! 方法,作用跟call一样,也可以用来改变函数执行时,this指针的指向,区别在于apply方法要求第二个参数必须是数组形式,即: jimmy.addSalary.apply(mike,[1100]);

    76390发布于 2018-01-23
  • 来自专栏全栈程序员必看

    Ext3语法笔记——apply与applyIf

    1.apply 与applyIf 两者都是用于copy对象属性 Ext.apply(trgObj, sourceObj, [optObj]); Ext.applyIf(trgObj ‘p3_b’ }; 1) apply 示例: Ext.apply(a,b); //a的结果:{ p1=”p1_b”, p2=”p2_b”, p3=”p3_b”} Ext.apply( a,b,{p1:’a’}); //a的结果:{ p1=”p1_b”, p2=”p2_b”, p3=”p3_b”} Ext.apply(a,b,{p:’default’}); //a的结果 a”, p2=“p2_a”, p3=“p3_b”} Ext.applyIf(a,b,{p1:’a’}); //a的结果: { p1=“p1_a”, p2=“p2_a”, p3=“p3_b” } Ext.applyIf(a,b,{p:’default’}); //a的结果:{ p1=“p1_a”, p2=“p2_a”, p3=“p3_b” } 总结不同之处:apply会覆盖目标对象中已有的属性

    51220编辑于 2022-09-19
  • 来自专栏机器学习/数据可视化

    pandas系列3_缺失值处理和apply用法

    知识点 空值删除和填充 apply、applymap用法 shift()用法 value_counts()和mean():统计每个元素的出现次数和行(列)的平均值 缺失值和空值处理 概念 空值:空值就是没有任何值 用法(重点) # 求出每列的max 和 min def f(x): return pd.Series([x.min(), x.max()], index=["min", "max"]) df.apply (f) f = lambda x: x.max() - x.min() df.apply(f) # df.apply(f, axis="columns") 表示在行上执行 A 3.478075 B 1 5 2 2 3 4 4 6 5 5 6 4 7 4 8 1 9 3 dtype: int32 s.value_counts() 4 3 5 2 3 2 6 1 2 1 1 1 dtype: int64

    1.6K20发布于 2021-03-02
  • 来自专栏python3

    python apply()函数

    >>> help(apply) Help on built-in function apply in module __builtin__: apply(...) apply()的返回值就是object()的返回值。 apply()的元素参数是有序的,元素的顺序必须和object()形式参数的顺序一致。 say() apply(say) 结果: hello python! hello python! 3》函数带关键字参数 def say(a=1,b=2): print a,b def haha(**kw): print kw print type(kw) say () say(kw)#将kw传给a, b取默认值 apply(say,(),kw) haha(a='hello',b='python!')

    1.8K10发布于 2020-01-06
  • 来自专栏web前端-

    call和apply

    首先个人感觉call和apply还是挺神奇的,简简单单就改变了this的作用域,下面我们来共同学习一下 1.call和apply的语法(改变this的作用域,有点像冒充的感觉,例子如下) function.apply } var people1=new People("欧阳修","蛤蟆功"); var person=new Object();//重新创建了一个对象 People.apply People.call(person ,"啄木鸟","捉虫子"); people1.paly(); person.paly() </script> 代码基本没变,就是把apply 替换成了call,作用相同,两者最大区别就是传递参数的方式不同, 通俗说 call传递参数是直接用双引号,然后一个接着一个传递 apply传递参数是通过一个数组的形式传递

    1.1K30发布于 2018-09-13
  • 来自专栏韩曙亮的移动开发专栏

    【Kotlin】apply 内联扩展函数 ( apply 函数原型 | apply 函数示例 | Kotlin 调用 Java API )

    内联扩展函数 apply II . Kotlin 调用 Java API III . apply 内联扩展函数示例 ( 调用 Java API 处理图像 ) I . 内联扩展函数 apply ---- 1 . apply 函数原型 : 泛型 T 类型对象 , 调用 apply 方法 , 后面定义了一个闭包代码块 ; 调用 apply 方法的对象类型是泛型 , 说明任何对象都可以调用该方法 ). */ @kotlin.internal.InlineOnly public inline fun <T> T.apply(block: T.() -> Unit): T { contract 函数作用 : 扩展了调用 apply 函数的泛型类型 T 的对象的操作方法 , 等同于为泛型 T 对象定义了一个新的方法 ; 3 . apply 函数调用对象 : 所有的对象都可以调用 apply 函数 函数作用 : 作用 : 扩展了调用 apply 函数的泛型类型 T 的对象的操作方法 , 等同于为泛型 T 对象定义了一个新的方法 特点 : 在 apply

    3.1K20编辑于 2023-03-27
  • 来自专栏生信补给站

    R|apply,tapply

    apply族功能强大,实用,可以代替很多循环语句,先简单介绍apply和tapply函数。 一、apply()函数 apply函数可将一个任意函数“应用”到矩阵、数组、数据框的任何维度上。 set.seed(100)mydata <- matrix(rnorm(30), nrow=6) #生成随机数mydata [,1] [,2] [,3] 0.58179068 -0.20163395 -0.9138142 -0.8143791 [2,] 0.13153117 0.71453271 0.73984050 2.3102968 -0.4384506 [3, 求数学和英语的平均分 apply(roster[,c(2,3)],2,mean)Math English 500.9 21.8 2)当需要分组计算时候,使用tapply函数 tapply(roster [,"English"], roster[,"grade"], mean) A B 17 25 注:当index不是因子时,可以用as.factor()把参数强制转换成因子 3)aggregate函数同样可以得到类似的结果

    89680发布于 2020-08-06
  • 来自专栏Kirin博客

    解决NO migrations to apply

    可以尝试以下做法 创建表之后,遇到models模型变动,故当时做了删除应用文件夹下migrations文件,删除后重建,但重建后执行模型合并操作结果为No Changes,无法创建数据表 执行python3 manage.py makemigrations --empty 你的应用名; 执行python3 manage.py makemigrations; 执行python3 manage.py migrate

    2.4K20发布于 2020-07-09
  • 来自专栏coding个人笔记

    call、apply、bind

    今天分享自己对于call、apply、bind新的认识,并手写一个自己的call、apply、bind。 三个方法的语法大体一样: fnction fn() {} fn.call(thisArg, arg1, arg2, ...) fn.apply(thisArg, [arg1,arg2,...]) fn.bind (thisArg, arg1, arg2, ...) call和bind的参数一样,apply的参数是一个数组(a开头,Array),call和apply返回的是fn执行的结果,bind返回的是fn的拷贝并指定 比如求一个数组的最大最小值: var arr = [5, 6, 2, 8, 1]; console.log(Math.max.apply(Math, arr));//8 console.log(Math.min.apply 实现一个apply: Function.prototype.myApply = function (context) { if(context === undefined || context ==

    1.2K20发布于 2020-04-23
  • 来自专栏Android Note

    Kotlin —  apply vs with

    apply和with的不同 ① apply接收一个实例作为接收者,同时要求一个实例作为参数传递。 ② apply返回接收者,with返回其块内最后一个表达式的结果。 通常情况下,当你需要对一个对象某些事情并返回时,可以使用apply。而当你需要在一个对象上执行一些操作并返回一些可以使用的其他对象时,你可以使用with。 apply示例代码: fun getUser():User{ return User().apply{ name="andorid coder" age=25 } } with

    66030发布于 2018-07-02
  • 来自专栏Czy‘s Blog

    apply()、call()、bind()

    apply()、call()、bind() 每个Function对象都存在apply()、call()、bind()方法,其作用都是可以在特定的作用域中调用函数,等于设置函数体内this对象的值,以扩充函数赖以运行的作用域 使用 apply()、call()、bind()都能改变函数对象的this指向 window.name = "A"; //挂载到window对象的name document.name = "B"; // sayName: function(){ console.log(this.name); } } rollCall.sayName(); //Teacher // apply rollCall.sayName.apply(); //A //不传参默认绑定window rollCall.sayName.apply(window); //A //绑定window对象 rollCall.sayName.apply (document); //B //绑定document对象 rollCall.sayName.apply(s); //C //绑定自定义对象 // call rollCall.sayName.call

    99820发布于 2020-08-27
  • 来自专栏邱道长说

    scala apply解析

    根据维基百科的解释:apply是一个将函数应用于参数的函数。听上去有点绕口。 scala设计的apply方法也是桥接OOP和FP编程。 通用的将,任意的一个函数,都是一个将其应用到参数的过程。 案例 val f = (x:Int) => x + 1 我们都会简单的调用 f(3) image.png 其实它本质也是这样一个过程: 将函数f应用到参数3的函数。 所以我们可以如下写 f.apply(3) image.png 为何调用伴生对象的时候直接调用的是apply方法? 你是否有这个疑问。 回头看apply 严格来讲所有函数都应该遵循apply的方式,我们前面定义的f函数 f.apply(3) 这样写起来很累,所以scala的编译器帮助我们简化了这个过程,只需要我们写 f(3) 它就等价于上面的写法 至此我相信大家理解了这个apply的原理和逻辑了。 在伴生对象当中定义工厂方法的时候只有命名为apply的时候才能省略,其它方法名都是不可省略名称的。

    82750发布于 2020-11-25
  • 来自专栏前端重点笔记

    call,apply,bind详解

    只是临时改变一次this指向 小技巧:改变参数传入方式 示例: 求数组中的最大值: var arr=[1,10,5,8,3]; console.log(Math.max.apply(null, arr) ); //10 其中Math.max函数的参数是以参数列表,如:Math.max(1,10,5,8,3)的形式传入的,因此我们没法直接把数组当做参数,但是apply方法可以将数组参数转换成列表参数传入, 示例: var arr=[1,10,5,8,3]; console.log(Math.max.call(null,arr[0],arr[1],arr[2],arr[3],arr[4])); //10 采纳以参数列表的形式传入 示例: var arr=[1,10,5,8,12]; var max=Math.max.bind(null,arr[0],arr[1],arr[2],arr[3]) console.log(max(arr ); return fBound; }; var arr=[1,11,5,8,12]; var max=Math.max.bind(null,arr[0],arr[1],arr[2],arr[3]

    1.1K10发布于 2019-11-20
  • 来自专栏lhyt前端之路

    js的this、call、apply、bind、继承、原型链0.前言1.this2.call、apply、bind3.从call到继承

    ,this指向就那么几种: new 关键字 指向new 创建的对象 function F() { this.name = 1 } var f = new F() 复制代码 call、apply = eval('ctx[hash](' + args + ')')//将参数传递进去调用 } delete ctx[hash]//删除临时增加的属性 return result } 复制代码 apply (arguments[i]) } } return function(){ var args2 = Array.prototype.slice.call(arguments)//call和apply 我们都可以实现,这里就不再重复 return f.apply(ctx,args1.concat(args2))//将预先填入的参数和执行时的参数合并 } } 复制代码 此外,需要注意的,一个函数被 bind后,以后无论怎么用call、apply、bind,this指向都不会变,都是第一次bind的上下文 3.从call到继承 首先,js没有严格意义上的子类父类,实现继承是依靠原型链来实现类似于所谓的类的效果

    97710发布于 2018-10-31
  • 来自专栏小蔚记录

    js call 和 apply

    call 和 apply二者的作用完全一样,只是接受参数的方式不太一样。 方法定义   apply   Function.apply(obj,args)方法能接收两个参数:     obj:这个对象将代替Function类里this对象   args:这个是数组或类数组,apply (function(){   Array.prototype.push.call(arguments,4);   console.log(arguments);//[1, 2, 3, 4]    ,param,…paramN) 所以同样也可以通过apply来装换一下这个数组,即: var arr1=new Array("1","2","3"); var arr2=new Array("4"," 5","6"); Array.prototype.push.apply(arr1,arr2); console.log(arr1);//["1", "2", "3", "4", "5", "6"]

    1.7K20发布于 2019-09-11
  • 来自专栏前端迷

    bind、call、apply 区别

    call 和 apply 都是为了解决改变 this 的指向。作用都是相同的,只是传参的方式不同。 除了第一个参数外,call 可以接收一个参数列表,apply 只接受一个参数数组。 console.log(name) console.log(age) console.log(this.value) } getValue.call(a, 'yck', '24') getValue.apply 所以需要判断 if (this instanceof F) { return new _this(...args, ...arguments) } return _this.apply ', '24') var result = context.fn(...args) // 删除 fn delete context.fn return result } 如何实现一个 apply

    74820发布于 2019-12-05
  • 来自专栏程序随笔

    sql apply查询应用

    有以下应用场景 当用到了row_number over做分组排序时,可以考虑用apply...top替换 row_number over语句: SELECT A.* FROM ( SELECT 用apply...top替换 SELECT E.FirstName, E.LastName, OT.* FROM Employees 用apply...聚合函数直接替换。 通过实践调试,最后发现apply可以解决这个问题,但是网上对这个apply也没过多的讲述,在这里也只是做个总结。 最后的建议是,如果在大数据量下有分页查询或是连接大表又需要聚合查询,可以尝试apply得写法。可以用except来验证两者的输出。

    33710编辑于 2023-10-19
  • 来自专栏编程微刊

    什么是apply()方法?

    apply() 方法的语法如下: function.apply(thisArg, [argsArray]) thisArg:要在函数执行期间绑定到函数的对象,即函数的上下文。 = { name: 'John' }; greet.apply(person); // 输出:Hello, John 通过使用 apply() 方法,将 greet() 函数绑定到 person 对象,并在 apply() 方法中传递了 person 作为上下文。 apply() 方法的另一个常见用法是使用类似数组的对象传递参数: function add(a, b) { return a + b; } const numbers = [3, 5]; const 将参数 [3, 5] 存储在 numbers 数组中。 通过使用 apply() 方法,将 add() 函数绑定到 null 上下文,并将 numbers 数组作为参数传递。

    77360编辑于 2023-11-13
  • 来自专栏文渊之博

    小议如何使用APPLY

    一般又两种形式写法: 第一种格式就是CROSS APPLY。这种格式可以一方面从表或者结果集中的每一行数据中取出几列数值,另一方面将取出的数据作为输入条件得到表的函数值或者表达式。 使用CROSS APPLY 这个操作符将执行一个表值函数为每行关联在 在结果集中的数据,我们用下面的小例子来展示一下效果: image.png 假如你回顾代码,能发现,我使用CROSS APPLY来链接了 使用OUTER APPLY 与CROSS APPLY功能相似。唯一的不同是CROSS APPLY即使没有匹配到任何行在函数中,已然能够链接表中的数据并在本来应该有函数表现的列上填充null。 如图: image.png 使用表值表达式 到目前为止我们仅仅展示了APPLY 在一个结果集和一个表值函数之间的例子。当然它也是能与一个表值表达式一起应用的。 同样的,我们也能对表值表达式使用 OUTER APPLY 来实现外链接。这个例子我就不再列举了,有兴趣的可以自己尝试一下。

    97150发布于 2018-01-30
  • 来自专栏全栈程序员必看

    pandas apply() 函数用法

    举一个例子,有一个类型为 list 的变量,包含 从 1 到 10 的数据,需要从其中找出能被 3 整除的所有数字。 用传统的方法: def can_divide_by_three(number): if number % 3 == 0: return True else: 循环是不可少的,因为 can_divide_by_three() 函数只用一次,考虑用 lambda 表达式简化: divide_by_three = lambda x : True if x % 3 比如下面的示例将 x 列进行平方运算: df.apply(lambda x : np.square(x) if x.name=='x' else x) x y z a 1 2 3 b else x) x y z a 1 4 3 b 16 25 6 c 49 64 9 下面的示例对第一行 (a 标签所在行)进行平方运算: df.apply(lambda

    1.5K40编辑于 2022-06-25
领券