设为首页收藏本站

就爱编程论坛

 找回密码
 注册

人人连接登陆

无需注册,直接登录

用新浪微博连接

一步搞定

QQ登录

只需一步,快速开始

查看: 382|回复: 0
打印 上一主题 下一主题

javascript apply方法应用 [复制链接]

Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    无聊
    2025-5-27 03:37:20
  • 签到天数: 366 天

    [LV.9]以坛为家II

    论坛先锋 学习至圣 荣誉成员 论坛元老 活跃之星 终极领袖

    我玩的应用:

    跳转到指定楼层
    楼主
    发表于 2011-6-24 23:10:45 |只看该作者 |倒序浏览

    funObj.apply([thisObj[,argArray]])

    应用某一对象的一个方法,用另一个对象替换当前对象。

    functionObj的方法执行时,函数中的this对象会被thisObj替换掉。

    thisObj 可选项。将被用作当前对象的对象。

    argArray 可选项。将被传递给该函数的参数数组。

    //apply在对象继承方面的应用,不使用prototype,隐式的将父对象属性赋给了子对象

    function par(name)

    {

      this.parname=name;

    }

    function child(chname,parname){

      this.chname=chname;

      par.apply(this,new Array(parname));

    };

    var o=new child("john","Mr john");

    alert(o.parname+";"+o.chname);

    //apply可以在通用的方法调用方面进行使用

    window.onunload=function()

    {

      alert("unload event is fired!");

    }

    function sayBye(name,toName)

    {

      alert(name+" says bye to "+toName);

    }

    function sayEndBiz(name,toName,content)

    {

      alert(name+" ends his talk about "+content +" with "+toName);

    }

    function addTo(args,func)

    {

      var oldHandler=window.onunload||function(){};

      window.onunload=function()

      {

       func.apply(window,args);

       oldHandler.apply(window, args);

      }

    }

    addTo(new Array("John","everyone"),sayBye);

    addTo(new Array("John","everyone","deveopment strategy of the company"),sayEndBiz)

    分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    分享分享0 收藏收藏0 支持支持0 反对反对0 分享到人人 转发到微博
    [img=http://mail.qq.com/cgi-bin/qm_share?t=qm_mailme&email=fRUcHhYWGAQ9GxIFEBwUEVMeEhA]http://rescdn.qqmail.com/zh_CN/htmledition/images/function/qm_open/ico_mailme_02.png[/img]

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册 人人连接登陆

    晴云孤魂's Blog|就爱编程搜帖|手机版|Archiver|就爱编程论坛     

    GMT+8, 2025-7-2 18:26 , Processed in 0.137028 second(s), 26 queries .

    Powered by Discuz! X2

    © 2001-2011 Comsenz Inc.

    回顶部