我是
JavaScript新手,试图了解一些OOP的基础知识并模拟“类”.
在执行此脚本的最后一行时,我希望在第4行调用此对象指针来引用服务器场对象(就像它在第2行和第3行中正确执行的那样).
在执行此脚本的最后一行时,我希望在第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.