为什么我对对象方法的javascript调用不起作用
Why is my javascript call to an object method not working?
我正在尝试学习面向对象的javascript。为什么对对象方法的调用不起作用(没有警报)?
http://jsfiddle.net/hxPqJ/2/
当你点击链接时,应该会出现一个警报,说明Bob的年龄
如果链接消失,这里是HTML:
<a href="#" onclick="bob.say()">eh</a>
这是我的javascript。
function guy(person_name) {
this.name = person_name;
this.age = 32;
this.say = function() {
alert(this.name + " is " + this.age);
return false;
}
}
var bob = new guy("Bob");
Chrome Web开发人员控制台状态
Uncaught ReferenceError: bob is not defined
但是,我认为我用var bob = new guy("Bob");
定义了bob
。
您需要在jsFiddle的左窗格中选择一个no wrap
选项。
否则,jsFiddle将您的代码封装在事件处理程序中,而较差的bob
则被固定为局部变量。
演示
您缺少say()
上的结束}
。
除此之外,您不能从对象构造函数返回值。这样做将简单地将变量bob
设置为false
。
function Guy(person_name) {
this.name = person_name;
this.age = 32;
this.say = function() {
alert(this.name + " is " + this.age);};
}
var bob = new Guy("Bob");
还要注意,JavaScript约定通常指示对象构造函数像function Guy()
一样大写
这是最新的小提琴。
当我运行时,您编写了的消息
bob is not defined
显示在控制台上。我认为这是JSFiddle的一个怪癖,因为当我更改内容以在Javascript端而不是在HTML中设置onclick时,事情就成功了。
<a href="#" id="foo">eh</a>
document.getElementById("foo").onclick = function(){ bob.say(); }
http://jsfiddle.net/hxPqJ/6/
相关文章:
- 从javascript调用asp.net codebehind函数
- 如何使用javascript调用Php文件
- Can用户'MediaWiki上的自定义JavaScript调用Lua模块
- 从Javascript调用Applet方法
- php javascript代码从javascript调用php函数
- 是否可以从html中的javascript调用.vbs文件
- 从javascript调用C#Web服务并使用它(json格式)
- 如何用javascript调用函数,然后在滚动事件中调用该函数的特定实例
- Sinon Spy不使用Javascript调用或应用程序
- 使用javascript调用javawebservice
- 从javascript调用服务器端的下拉列表onchange函数
- 单击按钮时,使用Javascript调用并返回值
- 函数1结束后,JavaScript调用函数2
- 对wcf服务的javascript调用
- 使用JavaScript调用Excel文件
- 从JavaScript调用JAX-WSWeb服务时参数为Null
- 从javascript调用codeigniter方法并传递数据
- 使用usinf-if语句javascript调用函数
- 通过Javascript调用php文件
- 从javascript调用flash点击事件