如题:在js中我们都知道call/apply,还有比较少用的bind;传入的第一个参数都是改变函数当前上下文对象;call/apply区别在于传的参数不同,一个是已逗号分隔字符串,一个以数组形式.而bind和call几乎没差别只是将值返回. 可是当我们将null/undefined作为值传进去的时候呢?居然得到的是window,当前js运行环境的全局对象. 这其实在es5中就有解释的:传入null/undefined的时候将执行js全局对象浏览器中是window,其他环境是global.这样就解…
在js中我们都知道call/apply,还有比较少用的bind;传入的第一个参数都是改变函数当前上下文对象; call/apply区别在于传的参数不同,一个是已逗号分隔字符串,一个以数组形式.而bind和call几乎没差别只是将值返回. 可是当我们将null/undefined作为值传进去的时候呢?居然得到的是window,当前js运行环境的全局对象. 这其实在es5中就有解释的:传入null/undefined的时候将执行js全局对象浏览器中是window,其他环境是global.这样就解释得…
call和apply第一个参数为null/undefined,函数this指向全局对象,在浏览器中是window,在node中是global 在严格模式中(ie 6/7/8/9 除外),传入null/undefined,this不指向全局对象,而是null/undefined本身 'use strict' function func(){ console.log(this); } func.call(null); // null func.apply(undefined); // undefin…
错误示例: <a href="javascript:waterLineEdit(${goods.goods_id})" >修改 </a> <!-- 浏览器中会实际是下面的那样 --> <a href="javascript:waterLineEdit(20151333)" >修改 </a> 本来数字是20151333,点击修改应该获取20151333这个才对.但是传到后台却不是这个数字.很郁闷.然后百度了一…
call/apply是用来改变函数的作用域的,第一次参数为this,第二个参数为传输的值,例如 var a ="windowA"; var b = "windowB"; var str = "str"; var myObject = {a:"myA",b:"myB"}; function hello(s){ alert("a= "+this.a + ", b= "+t…
setTimeout的第一个参数只能放一个无参的函数,更像放了一个函数指针在那里,如果要放带参数的话,就要拿个匿名函数包裹一下…
call_user_func — 把第一个参数作为回调函数调用 说明 mixed call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] ) 第一个参数 callback 是被调用的回调函数,其余参数是回调函数的参数. 参数 callback 将被调用的回调函数(callable). parameter 0个或以上的参数,被传入回调函数. Note: 请注意,传入call_user_func()的参数不能为…
ECMAScript中的函数是对象,因此函数也有属性和方法.每个函数都包含两个属性:length和prototype,且每个函数包含两个非继承而来的方法apply()和call().这两个方法的用途都是在特定的作用域中调用函数,实际上等于设置函数体内thiis对象的值. apply() apply()方法接受两个参数:一个是在其中运行函数的作用域,另一个是参数数组.其中,第二个参数可以是Array的实例,也可以是arguments对象. 定义:应用某一对象的一个方法,用另一个对象替换当前对象.即…
http://blog.csdn.net/linjf520/article/details/8746064 大家在使用Function.apply或是call时,是否发现,第一个参数不知道怎么用,赋值了也没反应: 没反应的情况,是因为你的这个Function是普通的类成员函数: 重点总结: 从这点我们可以知道:AS3中的普通函数,与匿名函数的this区别(这个发现与JS的一样) 因为,普通类成员函数中,的this都是指当前实例对象的引用: 而,匿名函数中,的this都是指当前执行该匿名函数的th…
JavaScript中数字有十进制.八进制.十六进制.以"0"开头的是八进制,"0x"或"0X"开头的是十六进制. parseInt用来把字符串转换成整型数字,它接受两个参数,第一个参数为字符串,第二个为数字基数如8,10,16. parseInt(string, radix) 当第二个参数不传时默认为10,即默认转成十进制的数字. parseInt('7') // number 7 parseInt('8') // number 8 parse…