在学习C语言中,我们都会涉及到指针问题,无奈时间比较久了也不用很多东西都忘得差不多。
在JavaScript中今天就遇到一个函数带括号和不带括号的问题。像这样:
<script>
function aaa(name,age,sex)
{
this.name=name;
this.age=age;
this.sex=sex
this.shuchu=shuchu
}
function shuchu()
{
alert("名字:"+this.name+" "+"年龄:"+this.age+" "+"性别:"+this.sex)
}
var bbb=new aaa("小明",18,"男")
bbb.shuchu()
</script>
上面的this.shuchu=shuchu 和下面的bbb.shuchu()问题
- 加了括号的表示调用,也就是说它会被执行,没有加括号的是函数的引用赋值,即把shuchu函数的引用赋值给aaa的shuchu,这时候shuchu函数没有被调用,也没有被执行。感觉就像c中的函数指针一样,这时的函数名就是一个变量,不过它的值是一个函数的地址,或者引用。
- this.shuchu=shuchu
,表示函数shuchu()是函数aaa的一个成员变量,当创建一个aaa的实例化对象时,可以通过对象的属性来调用其成员变量。
就是函数名其实是函数的地址,函数名加一个括号就是函数的调用问题。函数调用就是立即执行的意思。
在 JavaScript 中函数就是变量。