分析公司页面的时候遇到的
作用:在p内部循环上下滚动p,每个p条目显示1500ms(根据代码猜的)。当鼠标悬停时停止滚动。
HTML结构如下
汉堡
//p的高度也为20px
番茄酱
薯条
And Cheese
//实际代码的p内部共有6个p标签
JS代码如下
new是用function创建新对象的关键字,那直接new function又是什么意思?在这个function内部无参数地调用arguments.callee还能调用到函数本身吗?此外还有很多看不懂的地方,求解!
new function是不是相当于(function(){}())呢?
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
分开你能明白,合起来就不明白了?
这样是可以的(函数声明):
这样也是对的(函数表达式):
省略中间变量当然也没问题:
这种形式跟上面的没有本质区别。
至于
arguments.callee,是在函数调用时,函数内部的变量arguments上的一个属性。那么函数调用有哪些方式?
直接调用:
f(...)或obj.f(...)通过
new关键字调用通过
apply和call等方法调用new是用来创建对象的不错,但是它同时也是一种调用函数的方式啊,所以此时在函数内部的arguments.callee当然是有效的,并且指向函数对象本身。相当于
var _fun = argument.callee;
setTimeout(_fun,1500);
不同于
var _f = function(){};var只是一个声明,function内部的代码只有在_f()的时候才会被执行。
new则是实例化了一个对象,会调用function(){}内的构造函数,function(){}内部的代码会立刻被执行。
new function : 创建函数并执行
arguments : 正在执行的函数实例
arguments.callee: 返回的是函数对象本身