搜索
1function fn() {}
1btn.onclick = function () {}
1function Person() {} 2new Person()
1const a = function () {}
1(function (name) { 2 console.log(name) 3 return 'aaa' 4})('mark'); 5// 或者 6+(function (name) { 7 console.log(name) 8})('mark') 9// 或者 10!(function (name) { 11 console.log(name) 12})('mark')
1function a() { 2 console.log(arguments.callee) // 当前函数 3 console.log(a.caller) // 真正调用此函数的函数 4}
1fn.call(obj,a,b,c...);// 多个参数 2fn.apply(obj,[a,b,c...]);// 两个参数,第二个为数组 3fn.bind(obj,a,b,c...);// 与 call 一样,返回的是函数本身
:::tip 注意第一个参数传 null 为不改变 this 指向 :::
1(function (a) {}) 2 .length( 3 // 1 4 (a = 5) => {} 5 ) 6 .length( 7 // 0 8 (a, b, c = 5) => {} 9 ) 10 .length( 11 // 2 有一个默认值, 3-1 = 2 12 13 // 数值为参数的长度,但指定了默认值 length 属性将失真 14 (...args) => {} 15 ) 16 .length( 17 // 0 18 19 // 如果设置了默认值的参数不是尾参数,那么 length 属性也不再计入后面的参数了。 20 (a = 0, b, c) => {} 21 ) 22 .length( 23 // 0 24 (a, b = 1, c) => {} 25 ).length // 1
1function foo() {} 2foo.name( 3 // "foo" 4 // 构造函数 name 为构造出来对象下的值 5 new Function() 6)