call, apply
call , apply 立刻执行
bind 不会立刻执行
var nickname = '小鸡公主';
var family = {
nickname: '皮杰先生',
}
function fn(a,b){
console.log(this , a ,b);
}
fn(1,2); // window 1 2
// call apply 立刻执行
fn.call(family , 1 ,2); // this 指向变成 family
// apply 是以 阵列带入
fn.apply(family, [3,4]); // this 指向变成 family
// bind 不会立刻执行
var fn2 = fn.bind(family,5,6); // this 指向变成 family
fn2();
var fn2 = fn.bind(family,5,6);
fn2(1,2); // 不会呈现
var fn2 = fn.bind(family,5); // 5 1
fn2(1,2);
进阶观念
var name = '小鸡公主';
var family = {
name: '皮杰先生',
}
function fn(a,b){
console.log(this , typeof this , a ,b);
}
// 这里的 1 会以建构式呈现
fn.call(1 , 1 ,2); // Number{1} object 1 2
// 这里的 '你好' 会以建构式呈现
fn.call('你好' , 1 ,2); // String{"你好"} object 1 2
// 非严格模式下 若传入 undefined 或 null 会指向 window
fn.call(undefined , 1 ,2); // window object 1 2
fn.call(null , 1 ,2); // window object 1 2
那什麽是严格模式呢??
严格模式 (strict mode)
MDN: https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Strict_mode
function fn(a,b){
'use strict'
console.log(this , typeof this , a ,b);
}
fn.call(1,1,2); // 1 number 1 2
fn.call(undefined,1,2); // undefined undefined 1 2
fn(1,2); // undefined undefined 1 2
// 简易呼叫的 this 尽可能不要调用,它的本质其实是 undefined
那今天的介绍就到这里
若有任何问题 或 内容有误
都可以跟我说唷
<<: [Golang]同步工具-sync包的RWMutex-心智图总结
GNU Debugger,简称 GDB,是 GNU 软件系统中的除错器,由於其具有可移植的优点,在现...
昨天介绍了 AsyncPipe 的用法以及它可以带来的便利,今天要来看一下在这方便的背後是由那些东西...
-数字身份模型(来源:NIST SP 800 63-3) 刷联系人ID卡并输入PIN码是两步验证。...
除了有BETWEEN AND 之外,还有NOT BETWEEN AND (NOT BETWEEN A...
我是今年刚毕业的新鲜人,选择了离家229公里远的工作, 连我自己都感到很意外,毕竟我是一个非常以家人...