理解' if (document.createEvent){.} '函数调用,不带括号
Understanding `if (document.createEvent) {..}` function call without parentheses?
我在这里有以下脚本:
function download(filename, text) {
var pom = document.createElement('a');
pom.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
pom.setAttribute('download', filename);
if (document.createEvent) {
var event = document.createEvent('MouseEvents');
event.initEvent('click', true, true);
pom.dispatchEvent(event);
}
else {
pom.click();
}
}
download('test.txt', 'Hello world!');
现在我不明白if (document.createEvent)
的用法:
我读了这个问题的答案在JavaScript中,如果我用括号调用函数会有什么不同吗?并读一些其他问题。
在大多数例子中,是某种引用,如window.onload = initAll;
或var ret = Multiply;
,但这显然不是这里的情况。对我来说最有趣的例子是:
function Multiply(operator, operand) {
return operator * operand;
}
var operator = 3;
var operand = 4;
var ret = Multiply;
在这里,根据作者的说法,Multiply
没有被执行,ret
引用了函数Multiply
。
这里还声明,调用不带括号的函数是引用。
但这让我更加困惑,因为对我来说,引用document.createEvent
,这是一个创建事件的函数,没有意义。
关于document.createEvent()
函数的文档,如这里,没有指出没有参数的用法。
所以,请给我黑暗的大脑带来一些光明。谢谢你的帮助。
问题(短):
-
document.createEvent
是函数调用还是引用? -
document.createEvent
返回什么?
document.createEvent
是函数调用还是引用?
试图访问document
对象的属性
该属性可能存在。它可能有一个值。该值可能是对函数的引用。
如果所有这些都是,那么它将是一个真值(并且if
块将运行)。如果它不存在,它将是一个假值(并且else
块将运行)。
这是一个测试,看看浏览器是否支持该功能
什么文件。createEvent回报呢?
属性的值。如果浏览器支持createEvent
,那么它将作为函数计算,这是一个真值。
document.createEvent
是函数调用还是引用?
是一个表达式,表示document
对象的属性。我们期望它的值是对Function
对象的引用,该对象将创建一个事件,但它也可能是undefined
。
document.createEvent
返回什么?
作为一个表达式,它求值为所述属性的当前值。
1 - JavaScript有真值和假值。诸如0,",undefined, null等值是 false 值,而1,-1或"text",例如对象的现有属性是 true 。(如果它们的值不是假的!)2-由于createEvent是document对象的属性,代码片段基本上测试该函数的存在,这意味着它的存在是真实的。我认为这项检查与浏览器兼容性有关&方法弃用。
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 在输入字段上有两个函数调用,一个在Blur上,一个不在Angular中
- 如何在Javascript函数调用中循环变量
- Javascript:应为赋值或函数调用,但实际看到的却是表达式
- 如何远程检查JavaScript应用程序的函数调用堆栈
- javascript函数调用不起作用
- 为什么这个函数调用会破坏程序并导致未定义的变量
- 如何通过函数调用设置图像的src
- 从全局函数调用Ember控制器上的方法
- 为什么Jquery$.ajax在函数调用中触发所有statusCode,即使调用成功
- JavaScript函数调用(arg1)(arg2)
- 打印链接时,将javascript函数调用到链接中
- 为什么更改范围获胜'不能在ng if内部工作,而是通过函数调用AngularJS
- 调用If Else语句中的JavaScript函数
- 在d3节点上调用if…then函数
- ajax调用错误处理函数或if-else语句
- if语句中的函数仅在第一次未定义,但在休息时间函数调用也是如此
- 理解' if (document.createEvent){.} '函数调用,不带括号
- 如何使用一个函数通过if/case语句调用另一个函数
- 如何调用if语句中的函数-javascript