javascript - 关于JS函数表达式的疑问?
ringa_lee
ringa_lee 2017-04-11 11:32:59
[JavaScript讨论组]
两个代码示例如下:






----------------------我是分割线-------------------------------------------------- 这里是一大堆文字,一大堆文字,一大堆文字。

这里是一大堆文字,一大堆文字,一大堆文字。

这里是一大堆文字,一大堆文字,一大堆文字。 ————————————————————————————————————————————————————————————————————分割线———————— 问题是,第一段代码为什么是 op1.onmouseover=function() { startMove(this,'height',400) } 而第二段代码是 op.onmousemove=mouseMove;这个格式 我互换两种代码格式,两个代码均无法正常运行。 比如第一种:op1.onmouseover=startMove(this,'height',400); 第二种: op.onmouseover=function() { mouseMove; }

跪求指点,谢谢各位大神!

ringa_lee
ringa_lee

ringa_lee

全部回复(2)
大家讲道理

看你自己写的:

第一段代码:

// 这是正确的写法
op1.onmouseover = function () {
    startMove(this, 'height', 400);
};

然后,你修改成了这样:

op1.onmouseover = startMove(this, 'height', 400);

那么,请问,你修改的写法中的 this 从哪儿来?


第二段代码:

正确的写法是这样:

// 直接将函数赋值给变量,不加括号,就表示调用函数
op.onmousemove = mouseMove;

而你改成了这样:

op.onmouseover = function () {
    mouseMove;
};

那么,你修改的代码里,mousemove 是啥?变量?函数要运行不该要加 () 吗?

所以,第一段代码,你要传入 this,那么,就不能那样简写;第二段代码,在你要运行的函数上加上括号。

PHP中文网

1.this是只有函数中有这个对象。
2.你调用这个函数,this就指向你,如果是window调用这个函数,this就指向window。
3.你mouseMove是个函数...执行函数是mouseMove();
4.如果你调调试一个程序有没有运行,可以在你那个函数中添加console.log(1);

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号