gpt4 book ai didi

javascript - 更改 "this"变量的函数

转载 作者:数据小太阳 更新时间:2023-10-29 04:49:09 24 4
gpt4 key购买 nike

我是 JavaScript 的新手,正在尝试了解 OOP 和模拟“类”的一些基础知识。

在执行该脚本的最后一行时,我希望第 4 行调用的 this 对象指针指向 farm 对象(就像它在第 2 行中正确执行的那样,并且3).

不幸的是它没有,我猜 this 对象指针指向 document

var Building = function(cost){
this.cost = cost;
this.printCost = function(){
document.getElementById(this).innerHTML = this.cost;
}
}

var farm = new Building (50);

farm.printCost();

-

<html>
<body>
<p id="farm">
</p>
</body>
</html>

有没有办法让这个函数使用正确的对象?如果我的理解有任何错误,请告诉我。

我还不熟悉 jQuery,所以如果您能坚持核心 JavaScript 语法,我将不胜感激!

JSFiddle:https://jsfiddle.net/7n2of9k7/

最佳答案

据我所知,将实例的变量名作为字符串获取是不可能的。我也真的不明白为什么你会这样做,因为这是非常不切实际的。我只是将要插入的元素作为字符串传入:

var Building = function(cost, element){
this.cost = cost;
this.printCost = function(){
document.getElementById(element).innerHTML = this.cost;
}
}

var farm = new Building(50, 'farm');

farm.printCost();
<p id="farm">
</p>

这现在只是将一个 ID 传递给函数,以便它正确插入。您也可以将其传递给 printCost

关于javascript - 更改 "this"变量的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39360604/

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