JavaScript window与undefined作为参数的作用
1、原函数

输出结果:1
如图:
2、加window的参数

输出结果:window对象
如图:
注意:此时的window不是全局变量,而是局部变量
3、关于形参必须传window么?当然是不需要的

输出结果:window对象
如图:
形参可以传任意字符,只要实参传的是window。函数
4、作用一 代码会被压缩,节省空间

5、作用二 提高性能

函数在执行过程中,能在参数中找到window,就不用去全局作用域中找,即效率高,提高性能。
6、是否可以实参也不传?
可以,实参形参都不传,内部还是可以访问到window,这是因为window是全局变量,在哪都可以访问到,此时在全局作用域中寻找的window,效率低,并且上线的时候不会被压缩。
7、为什么要传入undefined?
在自调用的匿名函数的作用域内,确保undefined是真正的未定义,因为undefined能够被重写,赋值。
结论:window作为实参的用意:提高性能;方便代码压缩。
undefined作为形参的用意:防止undefined的值被修改。
JavaScript window与undefined作为参数的作用的更多相关文章
- 详解jquery插件中(function ( $, window, document, undefined )的作用。
1.(function(window,undefined){})(window); Q:(function(window,undefined){})(window);中为什么要将window和unde ...
- ;(function( $, window, undefined ){ }(jQuery,window))为何需要往里面传$,window,undefined这些参数
(function( $, jQuery , undefined ) {})(jQuery); 为什么要将window和undefined作为参数传给它? 因为 ecmascript 执行JS代码是从 ...
- 详解jquery插件中;(function ( $, window, document, undefined )的作用
在jquery插件中我们经常看到以下这段代码 1 2 3 ;(function ( $, window, document, undefined ){ //函数体内具体代码 })(jQuery, wi ...
- jquery插件中(function ( $, window, document, undefined )的作用
在jquery插件中我们经常看到以下这段代码 ;(function ( $, window, document, undefined ){ //函数体内具体代码 })(jQuery, window,d ...
- javascript匿名函数自执行 (function(window,document,undefined){})(window,document);
使用匿名自执行函数的作用: (function(window,document,undefined){})(window,document); 1.首先匿名函数 (function(){}) (); ...
- 浅谈JavaScript中的变量、参数、作用域和作用域链
基本类型和引用类型 在JavaScript中有两种数据类型值.基本类型值和引用类型值.基本类型值指的是简单的数据段,而引用类型值指的是可能由多个值构成的对象.在JavaScript中有5种基本数据类型 ...
- JavaScript null 和 undefined
null null 表示一个变量被声明了,并被赋值为空 var lzh = null; console.log(lzh); // null console.log(typeof lzh); // ob ...
- (译)(function (window, document, undefined) {})(window, document); 真正的意思
由于非常感兴趣, 我查询了很多关于IIFE (immediately-invoked function expression)的东西, 如下: (function (window, document, ...
- JS (function (window, document, undefined) {})(window, document)的真正含义
原文地址:What (function (window, document, undefined) {})(window, document); really means 按原文翻译 在这篇文章中,我 ...
随机推荐
- 深入分析Java单例模式的各种方案
单例模式 Java内存模型的抽象示意图: 所有单例模式都有一个共性,那就是这个类没有自己的状态.也就是说无论这个类有多少个实例,都是一样的:然后除此者外更重要的是,这个类如果有两个或两个以上的实例的话 ...
- 老李分享:Android -自动化埋点 2
除了上述的事件,Android提供了一个OnTouchListener的监听器,当事件传递到控件的时候,如果控件注册了这个监听器,则会执行监听器中的onTouch方法.同时,如果它返回true,则事件 ...
- SQLite 数据库
内容来源:高成珍.钟元生<Android编程经典案例解析> SQLite 数据库是Android 中内嵌的轻量级关系型数据库,本质上只是一个文件.SQLite 内部只支持NULL,INTE ...
- 【Android】error opening trace file: No such file or directory (2)
1.问题描述: 运行报错: 12-25 13:35:32.286: E/Trace(1202): error opening trace file: No such file or directory ...
- 什么东西那么吸引别人的眼球!! -----------------------------------for循环
认识for循环结构 在编码过程中,把一些重复执行代码采用循环结构进行描述,可以大大减化编码工作, 使得代码更加简洁.宜都... 1. 为什么要用for? 比如: 老师叫小明统计全班人的编号,小 ...
- JavaScript数组基础编程题归纳
之前的随笔"JavaScript中数组类型的属性和方法"中有介绍很多数组类型的方法,但都是一些理论.最近在练习在线编程题,发现自己还是习惯于用常规的循环来答题,对于数组的方法的使用 ...
- asp.net SignalR 一对一聊天
<script src="~/Scripts/jquery-1.8.2.min.js"></script> <script src="~/S ...
- asp.net core 编译mvc,routing,security源代码进行本地调试
因为各种原因,需要查看asp.net core mvc的源代码来理解运行机制等等,虽说源代码查看已经能很好的理解了.但是能够直接调试还是最直观的.所有就有了本次尝试. 因调试设置源代码调试太辍笔,所以 ...
- Python实现简易端口扫描器
在网上的一些资料的基础上自己又添了些新内容,算是Python socket编程练手吧. #coding=utf-8 import socket import time import sys impor ...
- 【局域网聊天客户端篇】基于socket与Qt
前言 暑假把linux下的高级编程和网络编程学习了一遍,学习很重要,但是也得有个练手的地方,所以必须做做项目来认识下自己所学习的知识. 能够找到小伙伴一起做项目也是一件很快乐的事情的,很幸运的有两个小 ...