一个call,apply,bind的例子

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <script src="../js/jquery.min.js"></script>
        <div onclick="abc.bind(this)(‘red‘,‘#fff‘)">fffff</div>
        <div onclick="abc.call(this,‘yellow‘,‘red‘)">fffff</div>
        <div onclick="abc.apply(this,[‘green‘,‘#fff‘])">fffff</div>
        <script>
            function abc(color1,color2){
                this.style.backgroundColor=color1
                this.style.color=color2
            }
        </script>
    </body>
</html>
时间: 06-27

一个call,apply,bind的例子的相关文章

轻松搞定this绑定方法 call apply bind

先来看一个例子 var obj = {}; //创建一个对象 obj.name = "James";  //给对象添加一个属性 obj.say = function(){  //给对象添加一个方法     console.log('My name is' + this.name); }; obj.say(); //this指向obj,所以输出"My name is James" var fn = obj.say; fn(); //this指向了window,全局中没

call,apply,bind

call,apply,bind 一.call&apply call, apply都属于Function.prototype的方法,因为属于Function.prototype,所以每个Function对象实例,也就是每个方法都有call, apply属性啦. 如果不明白,请见“Javascript之一切皆为对象3”. 而且它们的作用都是一样的,只是使用方式不同而已. 作用:借用别人的方法来调用,就像自己有这个方法一样. 咦,那它们怎样才能达到这目的呢? 对象. 对象? 是的,其实就是改变执行上下

call() , apply() , bind() 方法,

先来说说call() 和 apply()方法: 在<javascript高级程序设计>中有提到:函数也是对象,函数原型链的顶层实际上是指向Object的.既然函数是对象,那么自然就具有属性和方法." 每个函数都包含两个非继承而来的方法  call() , apply() " call() , apply() , 这两个方法其本质就是设置函数体内this对象指向的值,换个说法来理解这句话,一个对象可以通过call() 和 apply() 来调用其他对象的方法.比如说对象A拥有

别真以为JavaScript中func.call/apply/bind是万能的!

自从学会call/apply/bind这三个方法后我就各种场合各种使用各种得心应手至今还没踩过什么坑,怎么用?说直白点就是我自己的对象没有某个方法但别人有,我就可以通过call/apply/bind去调用执行别人家的方法,不太懂具体用法的同学可移至MDN学习一下Function.prototype.call() Function.prototype.apply() Function.prototype.bind() ,本文不讲解使用,但是这三个方法并不是万能的,并不一定会执行你想要的那个函数,因

一个php多态性的小例子

多态性在 OO 中指 "语言具有以不同方式处理不同类型对象的能力",但 PHP 是弱类型语言,在这一点上就比较弱,仅有 instance of 可以用于判断对象的类型 多态性的优点:让代码更接近生活中的真实情况 一下是一个非常简单的多态性例子,描述在电脑上安装不同操作系统,linux, OS X, windows 和 computer 是两种不同类型的对象. interface os{ function name(); function creator(); } class linux

一个简单的回调(例子)

1.声明一个回调Interface: public interface CallBack { /** * 执行回调方法 * @param objects 将处理后的结果作为参数返回给回调方法 */ public void execute(Object... objects ); } 2.回调的地方继承回调,实现回调的方法: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRe

ThinkPHP 学习(2)---一个简单的起步的例子

文件夹目录是核心目录ThinkPHP,入口文件是index.php,ThinkPHP里面的文件含义下次详解,接下来是启动一个自己的程序,现在可以修改一下入口文件,一般情况下会将自己的文件放在一个文件夹,我现在是先建立自己的文件夹,一个前台Home文件夹,一个后台文件夹Admin,怎么建立一个结构拥有ThinkPHP功能的文件夹呢?打开index.php,加入如下代码, <?php    //1.确定应用名称Home    define('APP_NAME','Admin');    //2.确定

一个android的webview的例子

截图如图所示. 核心部分代码 package com.example.app; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBar; import android.support.v4.app.Fragment; imp

call,apply,bind方法的总结

一般用来指定this的环境,在没有学之前,通常会有这些问题. var a = {     user:"Lenovointer",     fn:function(){         console.log(this.user);     } } var b = a.fn; b(); //undefined 1.call() var a = {     user:"Lenovointer",     fn:function(){         console.lo

JavaScript 之 call apply bind

关键字 this 绑定的方法 this的动态切换,固然为JavaScript创造了巨大的灵活性,但也使得编程变得困难和模糊.有时,需要把this固定下来,避免出现意想不到的情况.JavaScript提供了call.apply.bind这三个方法,来切换/固定this的指向. 1. apply(thisArg[,args]) call(thisArgs [,args...]) 后面跟的是若干个参数列表 而 apply接收的是参数数组. thisArgs指定了函数在运行期的调用者,也就是函数中的th