方法,函数,这个在javascript中
Method, function, this in javascript
我有以下javascript代码。
<script>
var myobj = {
fname : "abc",
lname: "xyz",
getvalue : function(v)
{
alert(typeof this.getvalue);
alert( this.fname + " " + this.lname + " " + this.v );
}
};
myobj.getvalue(3);
</script>
根据我的理解,getvalue
上面的代码中是方法而不是函数,那么typeof this.getvalue
返回函数怎么会出现。
为什么上面代码中的第二个警报显示undefined
当点v
为 this.v 时?
根据我的理解,
getvalue
上面的代码中是方法而不是函数,那么typeof this.getvalue
返回函数怎么来。
JavaScript 没有"方法"的概念(至少还没有*)。这只是一个通俗地用于描述分配给对象属性的函数的术语。顺便说一句,typeof
如果基本上是一个查找表。
为什么上面代码中的第二个
alert
显示undefined
当点v
为this.v
时?
因为myobj
没有属性v
。访问不存在的属性将返回undefined
。
*:ECMAScript 6("JavaScript"的下一个版本)确实有方法的概念,但它主要是语法的,它们仍然只是函数。
v
是方法参数而不是自身对象ref
所以你应该只v
<script>
var myobj = {
fname : "abc",
lname: "xyz",
getvalue : function(v)
{
alert(typeof this.getvalue);
alert( this.fname + " " + this.lname + " " + v );
}
};
myobj.getvalue(3);
</script>
您不会使用 v
参数调用 getvalue
函数,而只需调用 this.v
。
这可能是问题所在。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 正在全局范围中查找JavaScript函数
- 如何将输入(type=text)从html表单传递到javascript函数
- 如何调用这个匿名 JavaScript 函数
- 通过Ajax将JavaScript函数传递给PHP文件
- 在javascript函数中设置全局变量
- 如何在执行此特定onclick事件时执行JavaScript函数
- 使用javascript函数在页面初始化后加载jquery
- javascript函数同步
- 如何将一个JavaScript函数回调为多个函数
- 在javascript函数中使用php变量
- 代码背后调用一个JavaScript函数的按钮点击-C#
- 将JavaScript函数与HTML分离
- 组合两个javascript函数
- 在 Java 中的 JavaScript 函数中插入 Wicket 值
- javascript函数内部的代码用逗号而不是分号分隔
- href属性内的javascript函数
- 使用html表单中的参数调用JavaScript函数
- 分析Javascript函数中的多个对象
- javascript函数的:和=之间的区别