这可能是基本的,可能不可能,我可能完全误解,但我是一个初学者试图理解如何使用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创建方法而我无法弄清楚如何访问Object方法正在运行。
由于
答案 0 :(得分:2)
你真的很亲密,而不是这样做
<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
作为属性而不是函数并执行它。因此,为什么你把这个功能作为文本。