首先是 parentNode 属性,这个属性好理解,就是在 DOM 层次结构定义的上下级关系,如果元素A包含元素B,那么元素B就可以通过 parentElement 属性来获取元素A. 要明白 offsetParent 属性,要先明白“已定位元素” 这个名字,所谓“已定位元素”就是指给元素设置了 position 属性的样式,并且 position 样式属性的值等于 absolute.relative.fixed 之一的元素. 在使用 offsetParent 属性获取父级对象时有以下两种情况:…
1. (function(){}())与(function(){})() 这两种写法,都是一种立即执行函数的写法,即IIFE (Immediately Invoked Function Expression).这种函数在函数定义的地方就直接执行了. 通常的函数声明和调用分开的写法如下: function foo() {/*...*/} // 这是定义,Declaration:定义只是让解释器知道其存在,但是不会运行. foo(); // 这是语句,Statement:解释器遇到语句是会运行它的.…
function 是 js 的标识符 Function 是 js 里面的一个 构造函数 1.new function 与 new Function 的区别 new 运算符在 js 里面是 创建一个自定义的对象的实例 或者是 一个具有构造函数的本地对象的实例. 语法:new constructor [ ( [ arguments ] ) ] new function() {......} 初始化一个可操作对象,相当于 new function 匿名函数() {......} new Functio…
本篇文章主要是对jQuery(function(){})与(function(){})(jQuery)之间的区别进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 Jquery是优秀的Javascrīpt框架.我们现在来讨论下在 Jquery 中两个页面载入后执行的函数. $(document).ready(function(){  // 在这里写你的代码...});在DOM加载完成时运行的代码 可以简写成 jQuery(function(){ }); (function($) {})(j…
测试一: var fud01 = function()  { var temp = 100; this.temp = 200; return temp + this.temp; } alert(typeof(fud01)); alert(fud01()); 运行结果: function 300 最普通的function使用方式,定一个JavaScript函数.在大扩号内的变量作用域中,this指代fud01的所有者. 测试二: var fud02 = new function() { var t…
js里Function 与 function的不一样的,不仅仅是大小写的问题. 简单点说:大写的Function是一个类 ,而小写的function是一个对象. Function是一个构造器,function是Function实例化的一个对象,包含[[call]][[code]]等等属性,可以被执行. 具体使用方法: function callAnotherFunc(fnFunction, vArgument) { fnFunction(vArgument); } var doAdd = new…
function函数 function的英文是[功能],[数] 函数:职责:盛大的集会的意思 在js里,就是函数的意思.在Java里叫做方法. 定义函数 function fun(参数){ //函数体 //return可有可无,根据实际要求加或不加 } 使用函数 //函数名() fun(); ps:在js里,我们的方法可以先调用后声明,也就是调用寒素的代码可以写在定义函数的前面. 实参.形参 实参:简单理解就是实际的参数,在调用函数的时候传的 形参:简单理解就是在定义函数时,用来接收调用时传的值…
js in depth: closure function & curly function 闭包, 科里化 new js 构造函数 实例化, 不需要 new var num = new Array(); for(var i=0; i<4; i++){ num[i] = f1(i); } function f1(n){ var i=0; function f2(){ i++; console.log(i, n); } return f2; } num[2](); num[1](); num[…
( function(){…} )() ( function (){…} () ) 是两种javascript立即执行函数的常见写法,最初我以为是一个括号包裹匿名函数,再在后面加个括号调用函数,最后达到函数定义后立即执行的目的,后来发现加括号的原因并非如此.要理解立即执行函数,需要先理解一些函数的基本概念. 函数声明.函数表达式.匿名函数 函数声明:function fnName () {…};使用function关键字声明一个函数,再指定一个函数名,叫函数声明. 函数表达式 var fnNam…
文章说明,博主是一个前端小白,本片文章是博主在学习的过程中碰到的疑惑,根据查找的资料,之后得出的个人结论,文中如果出现错误,欢迎指正. -------路漫漫其修远兮吾将上下而求索,与诸君共勉-------- js中Function和Object的问题 ​ 首先了解,原型的概念,所谓的原型,其实就是一个对象的本质,既然是对象的本质,那么说明原型的本身就是一个对象, (注:这里是作者本人的个人理解,原型就像是一个模具,通过想象,当一个实例对象被创建的时候,首先是由构造函数产生一个最初的对象模子,然后…
1.最基本的作为一个本本分分的函数声明使用. 复制代码代码如下: function func(){} 或 var func=function(){};  2.作为一个类构造器使用: 复制代码代码如下: function class(){} class.prototype={}; var item=new class();  3.作为闭包使用: 复制代码代码如下: (function(){ //独立作用域 })();  4.可以作为选择器使用: 复制代码代码如下: var addEvent=new…
前面一段时间,看到(function(){}),(function(){}())这些函数就犯晕,不知道它到底是什么意思,为什么函数外要加小括号,函数后要加小括号,加和不加到底有什么区别……一直犯迷糊,看了汤姆大叔的<深入理解JavaScript系列(4):立即调用的函数表达式>后才明白它们到底是什么东西,终于将困扰我已久的东西给干掉了. 在这里,我先介绍一下函数引用和函数调用的差别.函数声明表现形式和函数表达式的表现形式. 一.函数引用和函数调用的差别 函数引用和调用的差别与函数名称后是否有小…
js立即执行函数: (function ( ){})( ) 与 (function ( ){}( )) 有什么区别? 转自:http://www.jb51.net/article/75089.htm 这篇文章主要介绍了js立即执行函数: (function ( ){})( ) 与 (function ( ){}( )) 有什么区别,需要的朋友可以参考下   没有区别. 你需要明白 IIFE 的原理,我简单说一下: 复制代码 代码如下: function foo() {...}     // 这是…
对于新手来说(本人也是新手-_-!),好像var foo = function () {} 和 function foo(){}并没有什么区别,意识里可能就认为就是两种不同的写法而已.但是,通过网上查询资料才知道 事实上是有区别的: 1.var foo = function () {} 这种方式是声明了个变量,而这个变量是个方法,变量在js中是可以改变的. 2.function foo() {} 这种方式是声明了个方法,foo这个名字无法改变 例: function b(){ document.…
前言 在网上有很多关于js function 与 Function直接关系的文章. 但是我感觉过于抽象化了,那么如何是具体化的解释? 正文部分为个人理解部分,如有不对望指出. 正文 <script> if((function(){}).constructor === Function) { console.log(true); } </script> 我写了一段这个代码,答案为true. 这就是function 与 Function的关系. 看下Function的定义: Funct…
(function(){         ......   }())  或   (function(){            ......   })()  匿名函数自调用,也就是说,定义一个匿名函数,然后马上调用它. 因为这个匿名函数的函数体相当于提供一个匿名的名字空间,这样就不会与用户自定义的JS函数.变量.对象发生冲突了,不失为是一种很好的解决命名空间问题的方法. 例如json2.js (function () { function f(n) { // Format integers to…
请问下(function($){}) 和$(function(){}) 和$(function($){}) 有什么区别 谢谢 一.先看 jQuery(function(){ }); 全写为 jQuery(document).ready(function(){ }); 意义为在DOM加载完毕后执行了ready()方法. 二.再看 (function(){ })(jQuery): 其实际上是执行()(para)匿名方法,只不过是传递了jQuery对象. 三.总结 jQuery(function(){…
今天做JsHint时,碰到一个警告:应该使用(function(){}())而不是(function(){})();看到这个我心想,这两种函数自执行有什么区别吗?自执行用了这么久,感觉对其理解仍然有点迷糊.于是,开始了一波百度.百度了一波后,再加上自己的一点理解对其终于有了一点眉目. 如果我们想要写一个自执行函数,第一反应会这样写:  ;function(){/*函数内容*/}() //然而,这样是会报错的.原因是当写一个匿名函数体之后,浏览器会将其当成是函数的声明,而不是函数表达式 对此,网上…
前言 通过问题看本质: 举例: js的写法:document.getElementById('save').disabled=true; 在jquery中我是这样写的 $("#save").disabled = true; //没有效果 分析: 其实因为$("#save")出来的其实是jQuery对象,而不是普通DOM对象 解决方法: 1)用JQ写法 $("#save").attr("disabled","true&…
和java比起来,javascript真的是松散的无以复加,不过这也让我们在无聊之余,有精力去探讨一些复杂的应用,从而在开发之路上,获得一些新的想法. javascript中的类的构造 javascript中有对象的概念,却没有类的概念.对于基础不牢的同学,很难在类和对象之间加以区分,这里简单的将它们的关系概况为:类是一种抽象的概念,例如瓶子.人.笨蛋:而对象,则是指这种概念中的实体,比如“那个美女手中的那只瓶子”“村长是一个地道的农民”“她的男朋友是个笨蛋”:实例化,就是指以类为基础构建一个实…
使用~function(){}()也是声明并调用函数的方法之一: 这是一段使用~function(){}()来声明函数并调用函数的例子: ~function() { alert(typeof next) // undefined ~function next() { alert(typeof next) // function }() }(); 把外层换成(function(){})()如下: (function() { alert(typeof next); // undefined (fun…
var func=function 和 function func()在意义上没有任何不同,但其解释优先级不同:后者会先于同一语句级的其他语句. 即: { var k = xx(); function xx(){return 5;} } 不会出错,而 { var k = xx(); var xx = function(){return 5;} } 则会出错. 为什么会这样呢?这就要引出javascript中的预解析机制来解释了. JavaScript解析过程分为两个阶段,一个是编译阶段,另外一个…
和java比起来,javascript真的是松散的无以复加,不过这也让我们在无聊之余,有精力去探讨一些复杂的应用,从而在开发之路上,获得一些新的想法. javascript中的类的构造 javascript中有对象的概念,却没有类的概念.对于基础不牢的同学,很难在类和对象之间加以区分,这里简单的将它们的关系概况为:类是一种抽象的概念,例如瓶子.人.笨蛋:而对象,则是指这种概念中的实体,比如“那个美女手中的那只瓶子”“村长是一个地道的农民”“她的男朋友是个笨蛋”:实例化,就是指以类为基础构建一个实…
$.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效. 如扩展$.fn.abc() 那么你可以这样子:$("#div").abc(); 通常使用extend方法扩展,详细请看API. $.fx是指jquery的特效. 如果使用显示.滑动.淡入淡出.动画等. $.fx.off可以关闭动画,其实是直接显示结果. jquery的extend和fn.extend jQuery为开发插件提拱了两个方法,分别是: jQuery.fn.extend(object…
function Test002(name, age){ name, age, this.printInfo = function(){ //定义的公有方法 console.log(name, age); } } let test002 = new Test002("weisheng", 32) test002.printInfo() //打印 weisheng 32 function Test003(name, age){ name; age; var printInfo = fun…
1.(function($) {…})(jQuery); 1).原理: 这实际上是匿名函数,如下: function(arg){…} 这就定义了一个匿名函数,参数为arg 而调用函数时,是在函数后面写上括号和实参的,由于操作符的优先级,函数本身也需要用括号,即: (function(arg){…})(param) 这就相当于定义了一个参数为arg的匿名函数,并且将param作为参数来调用这个匿名函数 而(function($){…})(jQuery)则是一样的,之所以只在形参使用$,是为了不与其…
$(document).ready(function(){...}) , $().ready(function(){...}) ,  $(function(){...}) , jquery(function($){}四者作用相同,都是文档载入完成后执行的函数. (function($){...})(jquery)是一个匿名函数,例如: (function(a){...})(jquery)中a是这个匿名函数的参数,之所以只在形参使用$,是为了不与其他库冲突,所以实参是jquery; 作用是:在这个…
1. $(function(){ }) 或 jQuery(function(){ }) 此函数也可以写成 jQuery(function(){ }), 用于存放操作DOM对象的代码,执行其中代码时DOM对象已存在.不可用于存放开发插件的代码,因为jQuery对象没有得到传递,外部通过jQuery.method也调用不了其中的方法(函数). 2. (function(){})() 或  function(){ })(jQuery) 此函数也可以写成   function(){ })(jQuery)…
这个问题可以从不同的角度来看,但从结果上来说 :他们是一样的.首先,如果从AST(抽象语法树)的角度来看,两者的AST是一模一样的,最终结果都是一次函数调用.因此,就解析器产生的结果论而言,两者是没有区别的. 其次 ,从作用上看,前文已经说了,两者的作用都是创建一个函数并调用之.那么为什么要创建一个函数并立即调用呢,我想大多数是因为javascript的代码默认在全局环境下执行,在此声明的所有变量都会变成全局变量,这很容易导致全局对象的污染.因此我们不得不找一个办法来隔离这些变量,而函数正好会创…
1.(function($) {-})(jQuery); 1).原理: 这实际上是匿名函数,如下: function(arg){-} 这就定义了一个匿名函数,参数为arg 而调用函数时,是在函数后面写上括号和实参的,由于操作符的优先级,函数本身也需要用括号,即: (function(arg){-})(param) 这就相当于定义了一个参数为arg的匿名函数,并且将param作为参数来调用这个匿名函数 而(function($){-})(jquery)则是一样的,之所以只在形参使用$,是为了不与其…