call/apply的第一个参数如果为null。this指向window

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= "+this.b+" "+s);
    }
    hello.call(null,str);//a ="windowA" b = "windowB" str
    hello.call(myObject,str);//a="myA" b="myB" str

如果第一个参数为null,则this指向window(在node环境中则指向global)

hello.call(null)//this 指向window
hello.call(window)//this同样指向window
时间: 2024-08-27 08:46:46

call/apply的第一个参数如果为null。this指向window的相关文章

call和apply第一个参数为null/undefined,函数this指向全局对象

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

利用call与apply向函数传递参数

Js中函数对象都有call与apply两个方法属性,二者使用方法和功能一样,只是传递参数的格式不同,call逐个传递单个参数,apply一次性传递一个参数数组. 这两个方法可以改变函数的调用对象,并且向函数中传递参数.如: function send(str,speak){ speak.call(this,str); //send(~)==window.speak(str),这句话会立即调用执行此函数 } send("你好!",function(strword){ //这里以匿名函数对

setTimeout 第一个参数类型

读别人代码的时候看到这么一段,很不理解,然后就搜了一下百度 setTimeout / setInterval 第一个参数可以有三种类型: 字符串   .  methods  .  匿名函数 1.字符串 for (var i = 0, l = aLi.length; i < l; i++) { if (true) { setTimeout("setImg(" + i + ")", 500); } } 这里setImg函数作为字符串传递,不是特别理解,汗颜!! 2

fopen的第一个参数不能有&#39;\n&#39;

我刚才写了个程序, 需要操作两个文件.  我用fgets获取标准输入流stdin中的文件名, 然后用fopen打开. 结果编译器总是抱错.  调试了一下,发现fopen返回的是NULL. 我在此处加了个ferror, 系统提示 无效的参数.  我首先排出了第二个参数,那就是第一个参数出现了问题.  我检查了一下存放文件名的数组,发现最后一个字符'\0‘前含有一个换行符. 会不会是换行符出了问题?  我用gets获取文件名( 因为gets和fgets的区别有:前者会将换行符替换成空字符, 而后者会

用C语言编写函数实现一个整数计算机,程序接受三个参数,第一个参数为操作项,后两个参数为操作数。

函数功能: 使用main函数的参数,实现一个整数计算机,程序可以接受三个参数,第一个参数"-a"选项执行加法,"-s"选项执行减法,"-m"选项执行乘法,"-d"选项执行除法,后面两个参数为操作数. 思考: 三个参数中两个操作数不用处理,直接传入即可,而对于第一个操作数就需要处理了,以保证传入的参数是"'-a','-s','-m','-d'",以便于处理计算,第一步将操作符号转化为上述赋好,然后将参数以及操

js中parseFloat(第一个参数,第二个参数)中第二个参数的解释

今天在看jquery的时候里面用到了parseFloat(第一个参数,10),一直不懂第二个参数是什么意思,于是上网查了一下,怕以后忘记就转了下来. 定义和用法:parseFloat() 函数可解析一个字符串,并返回一个浮点数. 语法:parseFloat(string),参数string是必须的,表示要被解析的字符串 返回值:返回解析后的数字 注意事项: 1.开头和结尾的空格是允许的. 2.如果字符串的第一个字符不能被转换为数字,那么 parseFloat() 会返回 NaN 3.如果只想解析

gcc omit-frame 如何找到函数的第一个参数

源代码: void run(int n) { int m = n; } int main() { run(1000); return 0; } without -fomit-frame-pointer: 08048374 <run>: 8048374: 55           push   %ebp 8048375: 89 e5      mov    %esp,%ebp 8048377: 83 ec 10      sub    $0x10,%esp 804837a: 8b 45 08  

对setTimeout()第一个参数是字串的深入理解以及eval函数的理解

1 <script language="javascript" type="text/javascript"> 2 var a=1; 3 setTimeout('var a=2;alert(a)', 1000); 4 alert(a); 5 setTimeout('alert(a)',1000); 6 </script>//1 2 1; setTimeout的异步我这里就不做过多的解释(异步回调加入事件队列相关知识),主要写一下对一个参数是字

call_user_func — 把第一个参数作为回调函数调用

call_user_func — 把第一个参数作为回调函数调用 说明 mixed call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] ) 第一个参数 callback 是被调用的回调函数,其余参数是回调函数的参数. 参数 callback 将被调用的回调函数(callable). parameter 0个或以上的参数,被传入回调函数. Note: 请注意,传入call_user_func()的参数不能为