JS中apply和call的用法】的更多相关文章

apply:方法能劫持另外一个对象的方法,继承另外一个对象的属性. Function.apply(obj,args)方法能接收两个参数obj:这个对象将代替Function类里this对象args:数组,作为参数传给Function(args-->arguments) call:和apply的意思一样,只不过是参数列表不一样. Function.call(obj,[param1[,param2[,…[,paramN]]]])obj:这个对象将代替Function类里this对象params:这个…
JavaScript中有一个call和apply方法,其作用基本相同,但也有略微的区别. 先来看看JS手册中对call的解释: call 方法调用一个对象的一个方法,以另一个对象替换当前对象. call([thisObj[,arg1[, arg2[,   [,.argN]]]]]) 参数thisObj可选项.将被用作当前对象的对象. arg1, arg2,  , argN可选项.将被传递方法参数序列. 说明call 方法可以用来代替另一个对象调用一个方法.call 方法可将一个函数的对象上下文从…
JavaScript中有一个call和apply方法,其作用基本相同,但也有略微的区别. 先来看看JS手册中对call的解释: call 方法调用一个对象的一个方法,以另一个对象替换当前对象. call([thisObj[,arg1[, arg2[,   [,.argN]]]]]) 参数thisObj可选项.将被用作当前对象的对象. arg1, arg2,  , argN可选项.将被传递方法参数序列. 说明call 方法可以用来代替另一个对象调用一个方法.call 方法可将一个函数的对象上下文从…
今天在学习vue.js的render时,遇到需要重复构造多个同类型对象的问题,在这里发现原生JS中apply()方法的一个特殊的用法: var ary = Array.apply(null, { "length": 5, "0": 'eat', "1": 'play' });//得到ary = ['eat', 'play', undefined*3] 在这个用法中,apply的第一个参数为null,第二个参数是一个包含length字段的对象,查了…
前面把js的相关知识总结了下,今天把js中的上下文的this,对于强类型语言,this的用法非常的单一,因为他们没有js特有的动态绑定. 首先看下面代码: function funcA() { this.name = "hello"; console.log(this.name); this.show = function() { console.log(this.name); } } funcA();// 1.hello var a = new funcA();//2.hello a…
首先看下面代码: function funcA() { this.name = "hello"; console.log(this.name); this.show = function() { console.log(this.name); } } funcA();// 1.hello var a = new funcA();//2.hello a.show();//3.hello var objA = { name: "objA" } a.show.call(o…
js中apply方法的使用   1.对象的继承,一般的做法是复制:Object.extend prototype.js的实现方式是: Object.extend = function(destination, source) { for (property in source) { destination[property] = source[property]; } return destination; } 除此之外,还有种方法,就是:Function.apply(当然使用Function.…
js中substring和substr的用法 substring 方法用于提取字符串中介于两个指定下标之间的字符 substring(start,end) 开始和结束的位置,从零开始的索引 参数     描述start     必需.一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置.stop     可选.一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1.如果省略该参数,那么返回的子串会一直到字符串的结尾.返回值一个新的字…
一,js中对象继承 js中有三种继承方式 1.js原型(prototype)实现继承 <SPAN style="BACKGROUND-COLOR: #ffffff"><SPAN style="FONT-SIZE: 18px"><html> <body> <script type="text/javascript"> function Person(name,age){ this.name…
JS中有时常用到 apply 和 call 两个方法,搜索网上很多,整理如下,简单看看这两个联系和区别, 联系: 网上查到关于apply和call的定义:这两个方法都能劫持另外一个对象的方法,继承另外一个对象的属性. xxxFunction.apply(obj,args) 方法接收两个参数obj:这个对象将代替xxxFunction类里this对象,也即xxxFunction类(函数)里的this不在是指 xxxFunction 本身,而是obj:args:这个是数组类型的参数,它将作为参数传给…
用法: <div id="test">    <span style="color:red">test1</span> test2 </div> 在JS中可以使用: test.innerHTML: 也就是从对象的起始位置到终止位置的全部内容,包括Html标签. 上例中的test.innerHTML的值也就是“<span style="color:red">test1</span&g…
js中!的用法是比较灵活的,它除了做逻辑运算常常会用!做类型判断,可以用!与上对象来求得一个布尔值,1.!可将变量转换成boolean类型,null.undefined和空字符串取反都为false,其余都为true. !null=true !undefined=true !''=true !=false !'abc'=false 2.!!常常用来做类型判断,在第一步!(变量)之后再做逻辑取反运算,在js中新手常常会写这样臃肿的代码:判断变量a为非空,未定义或者非空串才能执行方法体的内容 var…
&&和||在JQuery源代码内尤为使用广泛,由网上找了些例子作为参考,对其用法研究了一下: 1. && function a(){ alert("a"); return true; } function b(){ alert("b"); return true; } var c=a()&&b(); alert(c); a() && b() :如果执行a()后返回true,则执行b()并返回b的值:如果…
every()与some()方法都是JS中数组的迭代方法. every()是对数组中每一项运行给定函数,如果该函数对每一项返回true,则返回true. some()是对数组中每一项运行给定函数,如果该函数对任一项返回true,则返回true. function isBigEnough(element, index, array) { return (element >= 10); } passed = [12, 5, 8, 130, 44].every(isBigEnough); //fals…
<div id="test"> <span style="color:red">test1</span> test2 </div> 在JS中可以使用: 1. test.innerHTML: 也就是从对象的起始位置到终止位置的全部内容,包括Html标签. 上例中的test.innerHTML的值也就是“<span style="color:red">test1</span> t…
什么是位运算? 位运算是在数字底层(即表示数字的 32 个数位)进行运算的.由于位运算是低级的运算操作,所以速度往往也是最快的(相对其它运算如加减乘除来说),并且借助位运算有时我们还能实现更简单的程序逻辑,缺点是很不直观,许多场合不能够使用. 位运算只对整数起作用,如果一个运算子不是整数,会自动转为整数后再运行.虽然在 JavaScript 内部,数值都是以64位浮点数的形式储存,但是做位运算的时候,是以32位带符号的整数进行运算的,并且返回值也是一个32位带符号的整数. 关于二进制 ==以下来…
最近一直在用 js 写游戏服务器,我也接触 js 时间不长,大学的时候用 js 做过一个 H3C 的 web的项目,然后在腾讯实习的时候用 js 写过一些奇怪的程序,自己也用 js 写过几个的网站.但真正大规模的使用 js 这还是第一次.我也是初生牛犊不怕虎,这次服务器居然抛弃 C++ 和 lua 的正统搭配,而尝试用 nodejs 来写游戏服务器,折腾的自己要死要活的我也是醉了. 在给我们项目组的其他程序介绍 js 的时候,我准备了很多的内容,但看起来效果不大,果然光讲还是不行的,必须动手.前…
之一------(函数的劫持与对象的复制)关于对象的继承,一般的做法是用复制法: Object.extend见protpotype.js 的实现方法: Object.extend = function(destination, source) {    for (property in source) {      destination[property] = source[property];    }    return destination;  }  除此以外,还有一种不太常见的方法:…
Javascript中有一个call和apply方法,其作用基本相同,但是它们也有略微不同的地方. JS手册中对call方法的解释是: call方法:调用一个对象的一个方法,以另一个对象替换当前对象. call(thisObj,arg1,arg2……) 参数: thisObj  可选项,将被用作当前对象的对象. arg1,arg2……argN 可选项,将被传递参数列表. call方法可以用来代替另一个对象调用一个方法.call方法可以将一个函数的对象上下文从初始的上下文改变为由thisObj指定…
JavaScript中有一个call和apply方法,其作用基本相同,但也有略微的区别. 先来看看JS手册中对call的解释: call 方法调用一个对象的一个方法,以另一个对象替换当前对象. call([thisObj[,arg1[, arg2[,   [,.argN]]]]]) 参数thisObj可选项.将被用作当前对象的对象. arg1, arg2,  , argN可选项.将被传递方法参数序列. 说明call 方法可以用来代替另一个对象调用一个方法.call 方法可将一个函数的对象上下文从…
JavaScript中有一个call和apply方法,其作用基本相同,但也有略微的区别. 先来看看JS手册中对call的解释: call 方法调用一个对象的一个方法,以另一个对象替换当前对象. call([thisObj[,arg1[, arg2[,   [,.argN]]]]]) 参数thisObj可选项.将被用作当前对象的对象. arg1, arg2,  , argN可选项.将被传递方法参数序列. 说明call 方法可以用来代替另一个对象调用一个方法.call 方法可将一个函数的对象上下文从…
1.substring 方法 定义和用法 substring 方法用于提取字符串中介于两个指定下标之间的字符. 语法 stringObject.substring(start,stop) 参数     描述start     必需.一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置.stop     可选.一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1.如果省略该参数,那么返回的子串会一直到字符串的结尾. 返回值 一个新的…
学习http://www.cnblogs.com/delin/archive/2010/06/17/1759695.html 1.对象的继承,一般的做法是复制:Object.extend prototype.js的实现方式是: Object.extend = function(destination, source) { for (property in source) { destination[property] = source[property]; } return destinatio…
以下内容翻译自stackoverflow 链接: http://stackoverflow.com/questions/7238962/function-apply-not-using-thisarg-parameter 在AS3中,Method(方法)不同于Function(函数),Method是类的一部分,并且是和实例绑定[就是说这个类一旦实例化了,类里定义的Method会绑定这个实例],看这个链接的第二部分关于Method,引用一部分: Methods是类定义的functions(函数),…
1.apply()方法 apply方法能劫持另外一个对象的方法,继承另外一个对象的属性.  Function.apply(obj,args)方法能接收两个参数     obj:这个对象将代替Function类里this对象     args:这个是数组,它将作为参数传给Function(args-->arguments) 使用apply()方法时可以直接将当前函数的arguments对象作为apply的第二个参数传入 (1)apply()方法可实现继承 eg:function Person(na…
举例说明,比如我们有一个函数f(x)=x2,要把这个函数作用在一个数组[1, 2, 3, 4, 5, 6, 7, 8, 9]上,就可以用map实现如下: 由于map()方法定义在JavaScript的Array中,我们调用Array的map()方法,传入我们自己的函数,就得到了一个新的Array作为结果: function pow(x) { return x * x; } var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.map(pow); // [1, 4,…
最近研究OpenLayers源码时,发现其中使用了比较多的apply方法,对其也是很不明白.于是上网经过多方面了解以及自己细细体会后,终于算是基本明白是其干什么的了,这里分享下.apply方法的造型是这样的,Function.apply(obj,args) 能接收两个参数:obj:这个对象将代替Function类里this对象args:这个是数组,它将作为参数传递.按网上大牛的解释是apply:劫持另外一个对象(a)的方法,继承a的属性.为了进一步理解,我自己做了下小例子,如下: (functi…
推荐使用substring 方法   stringObject.substring(start,stop)   stringObject.substr(start,length)   定义和用法 提取字符串中两个指定的索引号之间的字符. substring() 方法用于提取字符串中介于两个指定下标之间的字符.   从起始索引号提取字符串中指定数目的字符. substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符.   参数 描述 参数     描述 start     必需…
with 语句 为一个或一组语句指定默认对象. 用法:with (<对象>) <语句>; with 语句通常用来缩短特定情形下必须写的代码量.在下面的例子中,请注意 Math 的重复使用: x = Math.cos(3 * Math.PI) + Math.sin(Math.LN10); y = Math.tan(14 * Math.E); 当使用 with 语句时,代码变得更短且更易读: with (Math) {    x = cos(3 * PI) + sin(LN10);  …
JavaScript中,apply()与call()的含义一样,均为改变调用函数中的this指向.其中apply()与call()的第一个参数表示所要指向的对象,若调用函数无参数可不写,则默认为window.第一个参数后的参数表示调用函数的参数,其中apply()第一个参数后面的参数为一个数组,call()第一个参数后面为0或多个参数. 例: window.x = 100; var obj = {}; obj.x = 1; obj.test = function(a) { alert(this.…