javascript的语法方面的问题

来源:百度知道 编辑:UC知道 时间:2024/06/02 18:43:34
第一个<script>
function Persen()
{};
var persen1=new Persen();
persen1.age=18;
persen.name="zzc";
function sayface()
{alert(persen1.name.":".persen1.age
}
persen1.say=sayface;
persen1.say();
</script>
对比
<script>
function Persen()
{};
var persen1=new Persen();
persen1.age=18;
persen.name="zzc";
function sayface()
{alert(persen1.name.":".persen1.age
}
persen1.say=sayface();
</script>
我想请教一下,persen1.say=sayface;persen1.say();和persen1.say=sayface();有什么区别呢 第一个既然say=函数名,干嘛还需要下一句呢 既然等于那个函数名,不代表调用那个函数嘛?请详细解答,偶是初学者

persen1.say=sayface;的意思, 是将persen1的成员say, 赋值上sayface方法的引用, 执行完这句话之后, persen1.say就是一个方法, 但仅仅是成为一个方法, 并没有调用, 就像方法声明一样.

persen1.say(); 的意思, 上面提到persen1.say是一个方法了, 所以这步是调用这个方法.

persen1.say=sayface();的意思, sayface是一个方法, 后面带括号的话sayface()是调用这个方法, 所以这句话的意思是执行sayface方法, 并将返回值赋给persen1.say. 执行完之后, persen1的属性say的值就是sayface执行之后的返回值.

你果然是初学者
你要改变学数学时的思维,
在程序设计里头
"="这个符号不是等于的意思
它的意思是"赋值",就是把后面的赋给前一个

如果要表示"等于"的意思,那么应该写成"=="