javascript – 更改“this”变量的函数

前端之家收集整理的这篇文章主要介绍了javascript – 更改“this”变量的函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是 JavaScript新手,试图了解一些OOP的基础知识并模拟“类”.
在执行此脚本的最后一行时,我希望在第4行调用此对象指针来引用服务器场对象(就像它在第2行和第3行中正确执行的那样).

不幸的是它没有,我猜这个对象指针反而指向文档.

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相关文章