Lucifer_can 2009-03-24 17:23
浏览 169
已采纳

JavaScript 比较头疼的问题.

[code="javascript"]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">



无标题文档 var obj = new Object(); obj.load = function(){ this.url = "我是URL的值"; this.showBtn(); } obj.load.prototype = { getUrl:function(){ alert(this.url); }, showBtn:function(){ var btn = document.createElement("input"); btn.type = "button"; btn.value = "demo"; document.body.appendChild(btn); //这个按钮点击的时候,我想能访问到 "我是URL的值这句话" btn.onclick = this.getUrl; } } window.onload = function(){ new obj.load(); }





[/code]
[b]问题补充:[/b]
我也想到了这个解法,真的就没有其他的办法让事件的scope跳回原来的对象么?
  • 写回答

4条回答 默认 最新

  • yang1vip 2009-03-25 09:24
    关注

    this总在变化之中,因为js的对象是在变化之中的,所以要一个确定的this限制了语言的能力,如果想要一直用同一个this作为对本对象的引用,可以这样:

    obj.load.prototype = {

    getUrl:function(){

    alert(thisObj.url);

    },

    showBtn:function(){

    var btn = document.createElement("input");

    btn.type = "button";

    btn.value = "demo";

    document.body.appendChild(btn);

    //这个按钮点击的时候,我想能访问到 "我是URL的值这句话"

    thisObj = this;
    btn.onclick = this.getUrl;

    }

    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号