Object.prototype using 'this'

Object.prototype using 'this'

本文关键字:this prototype using Object      更新时间:2023-09-26

这可能是基本的,也可能是不可能的,我可能完全误解了,但我是一个初学者,试图了解使用Object.prototype向对象添加方法的工作原理。

解释我的问题的最好方法是首先显示以下内容:

Object.prototype.printHTML = function() {
    alert(this.innerHTML);
};

this似乎只是简单地引用Object.prototype.printHTML(提醒HTML注意上面.中=符号后面的内容

我的问题是,你能直接引用所使用的对象吗?

因此,下面将提醒"测试段落":

<body>
<p id='test'>Test Paragraph</p>
<script>
Object.prototype.printHTML = function() {
    alert(this.innerHTML);
};
document.getElementById("test").printHTML; //this would alert "Test Paragraph"
//currently alerts "function() {alert(this.innerHTML);}
</script>
</body>

我知道这个例子毫无意义(因为document.getElementById("test").innerHTML;正是我所需要的),但我只是试图理解使用Object.prototype创建方法,我不知道如何访问该方法运行的对象。

感谢

你真的很接近,而是做这个

<body>
<p id='test'>Test Paragraph</p>
<script>
Object.prototype.printHTML = function() {
    alert(this.innerHTML);
};
document.getElementById("test").printHTML(); //<--- HERE WE ADD THE PARENTHESIS
//currently alerts "function() {alert(this.innerHTML);}
</script>
</body>

您访问printHTML时将其作为一个属性,而不是一个函数并执行它。因此,您将函数作为文本获取。