这可能是基本的,可能不可能,我可能完全误解了,但我是一个初学者,试图理解如何使用 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
作为属性而不是函数来访问并执行它。这就是为什么你得到了文本形式的函数。
关于javascript - 使用 'this' 的 Object.prototype,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37237067/