||和 JavaScript 中的消息
|| and onmessage in javascript
我正在阅读一个开源项目,它有一个这样的js文件
var pipe = function(source, listeners){
source.onmessage = function onmessage(msg){
//.. do something ..
};
return {
//.. something ...
};
}(nativeWindow || appjs, {});
(nativeWindow || appjs )
它们都是对象是什么意思?
这是否意味着为他们俩调用了这个函数?
或者它正在合并这两个对象?
这是.onmessage
是标准的东西,比如alert()
还是window
?我所说的标准的意思是,这个.onmessage
函数的幕后发生了什么,还是就像简单的函数一样?
谢谢
如果nativeWindow的计算结果为false(例如,如果它是未定义的),则appjs作为源代码传入;否则nativeWindow作为源代码传入。然后,作为源传入的任何对象的属性 onmessage 将设置为 onmessage 函数
来自 MDN :
expr1 || expr2
如果可以转换为 true,则返回 expr1;否则,返回 expr2.因此,当与布尔值一起使用时,||返回 true,如果 操作数为真;如果两者都为假,则返回假。
在此特定情况下,定义其值的第一个值作为参数传递。
.onmessage
是它在 pipe
函数中分配的任何内容。它只是source
对象的普通属性。
javascript 中的 ||
和 &&
返回一个值。这意味着; nativeWindow
OR appjs
作为表达式的返回值传入;返回最后一个计算的表达式。如果nativeWindow
是一个虚假(空值、未定义值等)值,则 appjs 将被传入。如果nativeWindow
是直通的(例如一个对象),它就会被传入。想想this OR that
.如果两个值都是假的,则右侧的值仍将传入。阅读更多关于 ||和&&这里:http://www.grauw.nl/blog/entry/510
||
是OR
运算符。如果左手评估为真,它也会短路。因此,它所做的是为函数提供 nativeWindow
的值或appjs
如果nativeWindow
是假的。
更详细的内容是:
var pipe = function()...;
if(nativeWindow) {
pipe = pipe(nativeWindow);
} else {
pip = pipe(appjs);
}
(nativeWindow || appjs, {}) = (source, listeners)
它们是传递的参数
nativeWindow || appjs
表示如果 nativeWindow 未定义或 falsy 取 appjs 的值
source.onmessage
onmessage 是对象源的属性(作为 nativeWindow || appjs
传递),它在您的情况下包含一个函数
- 如果消息框答案为YES,则用Javascript填写表单
- 使用JavaScript安全地发布消息
- 可以't使用fleck从javascript向c#发送消息
- 如何通过选择器元素将图像添加到javascript下拉警报消息中
- Servlet仅在单击JavaScript警报消息后重定向
- 使用jQuery/Javascript在Facebook上发送消息
- 为我的rails应用程序显示javascript弹出消息
- javascript文本验证不起作用.警报消息没有't显示
- Javascript-如果用户没有响应,则关闭确认消息
- JavaScript消息系统加密
- 带有消息html/javascript的进度条
- 从c++向javascript发送消息
- javascript在html元素方法运行setTimeout后返回此消息
- 如何使用 javascript 警报窗口显示验证消息
- Codeigniter:确认消息Javascript未显示
- 当两个字段为空时如何显示错误消息 javascript/jquery.
- 生成并显示随机消息–JavaScript
- 缺少草稿消息-javascript Gmail API-如何构建请求的主体
- 确认消息-Javascript rails应用程序
- 谷歌chrome -控制台消息JavaScript与绿色复选标记