为什么没有调用原型函数..当图像是clicket?
Html代码: -
<!DOCTYPE html>
<html style="height: 100%;">
<head>
<script type="text/javascript" src="tt.js"></script>
</head>
<body>
<p>This example calls a function which performs a calculation, and returns the result:</p>
<p id="demo"></p>
<input type="image" src="http://t2.gstatic.com/images?q=tbn:ANd9GcSTcJA5J-LOj0HOP1ZMzdSQIsxwuguFdtlesHqzU15W8TXx232pFg" onclick="myFunction('Info clicked')"/>
<script>
var a = new myFunction();
document.getElementById("demo").innerHTML = a.k;
</script>
</body>
</html>
java脚本: -
function myFunction(l) {
this.k = "hello";
alert(this.k);
var t = this.temp(l);
alert(t);
}
myFunction.prototype.temp = function(a)
{
alert(a);
return 10;
}
如果我把它放在html页面体内,它可以工作: -
<script>
var a = new myFunction();
document.getElementById("demo").innerHTML = a.k;
</script>
答案 0 :(得分:1)
因为你在构造函数上调用this.temp()
而不在它的实例上调用。
您需要使用new
创建实例。
new myFunction('Info clicked')
请注意,这没有意义。如果要在构造函数运行时执行某些操作,则应将方法分配给构造函数而不是原型。
答案 1 :(得分:0)
如果您想坚持自己的javascript定义,解决此问题所需要做的就是将html代码中的属性onClick
更改为new myFunction("...");
<input type="image" src="http://..." onclick="new myFunction('Info clicked')"/>