gpt4 book ai didi

javascript - jQuery 在原型(prototype)中覆盖 'this'

转载 作者:行者123 更新时间:2023-11-29 19:19:15 25 4
gpt4 key购买 nike

<分区>

我已经声明了一个 JavaScript 对象:

function A(name){
this.name=name
}

A.prototype.test=function(){
console.log(this.name);
};

作为一个简单的例子,我已经设置了一个按钮,如果它被点击应该输出一个变量到本地控制台日志:

<button id='test'>test</button>

脚本:

var t=new A('hello');
$('#test').click(t.test);

当我单击按钮时,我希望显示 this.name(在本例中为“hello”),但 this 指的是被单击的按钮,而不是我创建的对象。

这当然是一个调试脚本。在现实生活中,我将一个函数绑定(bind)到 window.resize 事件,该事件将在调整大小时重新构建一个窗口。

有一个JSFiddle这说明了问题。

我有一个解决方案,即在对象的构造函数中声明调整大小(或单击函数)并为 this 使用替代名称,如下所示 ( Here's the JSFiddle ):

function A(name){
this.name=name

var self=this;
$("#test").click(function(){
console.log(self.name);
});
}

但我宁愿使用原型(prototype)并将函数绑定(bind)到对象的构造函数中。我如何使用原型(prototype)来做到这一点?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com