012_call和apply区别

时间:2021-04-26 17:00:00

一、

function fn(a,b) {
console.log(this);
}
fn.call(null,1,2); //call为参数方式
fn.apply(null,[1,2]); //apply为数组方式 /*输出=>
Object [global] {
DTRACE_NET_SERVER_CONNECTION: [Function],
DTRACE_NET_STREAM_END: [Function],
DTRACE_HTTP_SERVER_REQUEST: [Function],
DTRACE_HTTP_SERVER_RESPONSE: [Function],
DTRACE_HTTP_CLIENT_REQUEST: [Function],
DTRACE_HTTP_CLIENT_RESPONSE: [Function],
global: [Circular],
process:
process {
title: '/usr/local/bin/node',
version: 'v10.3.0',
versions:
{ http_parser: '2.8.0',
node: '10.3.0',
v8: '6.6.346.32-node.9',
uv: '1.20.3',
zlib: '1.2.11',
ares: '1.14.0',
modules: '64',
nghttp2: '1.29.0',
napi: '3',
openssl: '1.1.0h',
icu: '61.1',
unicode: '10.0',
cldr: '33.0',
tz: '2018c' },
arch: 'x64',
platform: 'darwin',
release:
{ name: 'node',
sourceUrl:
'https://nodejs.org/download/release/v10.3.0/node-v10.3.0.tar.gz',
headersUrl:
'https://nodejs.org/download/release/v10.3.0/node-v10.3.0-headers.tar.gz' },
argv:
[ '/usr/local/Cellar/node/10.3.0/bin/node',
'/Users/00arunalldata00/009_mystudy/010_everest/001_Everest4/20180628/201804/7.fs/11.fn.js' ],
execArgv: [],
env:
{ PATH:
'/usr/local/opt/openssl/bin:/opt/vagrant/bin:/usr/local/sbin:/usr/local/opt/sqlite/bin:/usr/local/opt/openresty-openssl/bin:/usr/local/opt/icu4c/sbin:/usr/local/mysql/bin:/usr/local/opt/icu4c/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin:/Applications/Wireshark.app/Contents/MacOS',
NVM_RC_VERSION: '',
FORCE_COLOR: 'true',
ELECTRON_NO_ATTACH_CONSOLE: 'true',
DEBUG_COLORS: 'true',
npm_config_color: 'always',
MOCHA_COLORS: '1',
VERSIONER_PYTHON_VERSION: '2.7',
LOGNAME: 'arunyang',
NVM_NODEJS_ORG_MIRROR: 'https://nodejs.org/dist',
XPC_SERVICE_NAME: 'com.jetbrains.WebStorm.77156',
PWD:
'/Users/00arunalldata00/009_mystudy/010_everest/001_Everest4/20180628/201804/7.fs',
NVM_CD_FLAGS: '-q',
NVM_DIR: '/Users/arunyang/.nvm',
SHELL: '/bin/zsh',
PAGER: 'less',
LSCOLORS: 'Gxfxcxdxbxegedabagacad',
SECURITYSESSIONID: '186a8',
OLDPWD: '/Applications/WebStorm.app/Contents/bin',
VERSIONER_PYTHON_PREFER_32_BIT: 'no',
USER: 'arunyang',
ZSH: '/Users/arunyang/.oh-my-zsh',
TMPDIR: '/var/folders/wy/v0w9vkf52836x21w_jz2wzlh0000gn/T/',
SSH_AUTH_SOCK: '/private/tmp/com.apple.launchd.IKTjc3zbdP/Listeners',
XPC_FLAGS: '0x0',
NVM_IOJS_ORG_MIRROR: 'https://iojs.org/dist',
__CF_USER_TEXT_ENCODING: '0x1F5:0x0:0x0',
Apple_PubSub_Socket_Render: '/private/tmp/com.apple.launchd.huBMuc0K3M/Render',
LESS: '-R',
LC_CTYPE: '',
HOME: '/Users/arunyang' },
pid: 3023,
features:
{ debug: false,
uv: true,
ipv6: true,
tls_alpn: true,
tls_sni: true,
tls_ocsp: true,
tls: true },
ppid: 2534,
execPath: '/usr/local/Cellar/node/10.3.0/bin/node',
debugPort: 9229,
_startProfilerIdleNotifier: [Function: _startProfilerIdleNotifier],
_stopProfilerIdleNotifier: [Function: _stopProfilerIdleNotifier],
_getActiveRequests: [Function: _getActiveRequests],
_getActiveHandles: [Function: _getActiveHandles],
reallyExit: [Function: reallyExit],
abort: [Function: abort],
chdir: [Function: chdir],
cwd: [Function: cwd],
umask: [Function: umask],
getuid: [Function: getuid],
geteuid: [Function: geteuid],
setuid: [Function: setuid],
seteuid: [Function: seteuid],
setgid: [Function: setgid],
setegid: [Function: setegid],
getgid: [Function: getgid],
getegid: [Function: getegid],
getgroups: [Function: getgroups],
setgroups: [Function: setgroups],
initgroups: [Function: initgroups],
_kill: [Function: _kill],
_debugProcess: [Function: _debugProcess],
_debugEnd: [Function: _debugEnd],
hrtime: [Function: hrtime],
cpuUsage: [Function: cpuUsage],
dlopen: [Function: dlopen],
uptime: [Function: uptime],
memoryUsage: [Function: memoryUsage],
_rawDebug: [Function],
moduleLoadList:
[ 'Binding contextify',
'NativeModule events',
'NativeModule internal/async_hooks',
'NativeModule internal/errors',
'Binding uv',
'Binding buffer',
'Binding async_wrap',
'Binding config',
'Binding icu',
'NativeModule util',
'NativeModule internal/encoding',
'NativeModule internal/util',
'Binding constants',
'Binding util',
'NativeModule internal/util/types',
'Internal Binding types',
'NativeModule buffer',
'NativeModule internal/buffer',
'NativeModule internal/process',
'NativeModule assert',
'NativeModule internal/assert',
'NativeModule fs',
'NativeModule path',
'NativeModule internal/constants',
'Binding fs',
'NativeModule stream',
'NativeModule internal/streams/pipeline',
'NativeModule internal/streams/end-of-stream',
'NativeModule internal/streams/legacy',
'NativeModule _stream_readable',
'NativeModule internal/streams/buffer_list',
'NativeModule internal/streams/destroy',
'NativeModule internal/streams/state',
'NativeModule _stream_writable',
'NativeModule _stream_duplex',
'NativeModule _stream_transform',
'NativeModule _stream_passthrough',
'Binding fs_event_wrap',
'NativeModule internal/fs/utils',
'NativeModule internal/url',
'NativeModule internal/querystring',
'Binding url',
'NativeModule internal/process/warning',
'NativeModule internal/process/next_tick',
'NativeModule internal/process/promises',
'NativeModule internal/fixed_queue',
'NativeModule internal/process/stdio',
'Binding performance',
'Binding trace_events',
'NativeModule internal/inspector_async_hook',
'Binding inspector',
'NativeModule timers',
'Binding timer_wrap',
'NativeModule internal/linkedlist',
'NativeModule internal/timers',
'NativeModule internal/modules/cjs/loader',
'NativeModule vm',
'NativeModule internal/modules/cjs/helpers',
'NativeModule console',
'Binding tty_wrap',
'NativeModule net',
'NativeModule internal/net',
'Binding cares_wrap',
'Binding stream_wrap',
'Binding tcp_wrap',
'Binding pipe_wrap',
'NativeModule internal/stream_base_commons' ],
binding: [Function: binding],
_linkedBinding: [Function: _linkedBinding],
_events:
{ newListener: [Function],
removeListener: [Function],
warning: [Function] },
_eventsCount: 3,
_maxListeners: undefined,
_fatalException: [Function],
domain: null,
_exiting: false,
assert: [Function: deprecated],
config: { target_defaults: [Object], variables: [Object] },
setUncaughtExceptionCaptureCallback: [Function],
hasUncaughtExceptionCaptureCallback: [Function],
emitWarning: [Function],
nextTick: [Function: nextTick],
_tickCallback: [Function: _tickCallback],
stdout: [Getter],
stderr: [Getter],
stdin: [Getter],
openStdin: [Function],
exit: [Function],
kill: [Function],
argv0: '/usr/local/bin/node',
mainModule:
Module {
id: '.',
exports: {},
parent: null,
filename:
'/Users/00arunalldata00/009_mystudy/010_everest/001_Everest4/20180628/201804/7.fs/11.fn.js',
loaded: false,
children: [],
paths: [Array] } },
Buffer:
{ [Function: Buffer]
poolSize: 8192,
from: [Function: from],
of: [Function: of],
alloc: [Function: alloc],
allocUnsafe: [Function: allocUnsafe],
allocUnsafeSlow: [Function: allocUnsafeSlow],
isBuffer: [Function: isBuffer],
compare: [Function: compare],
isEncoding: [Function: isEncoding],
concat: [Function: concat],
byteLength: [Function: byteLength],
[Symbol(kIsEncodingSymbol)]: [Function: isEncoding] },
clearImmediate: [Function: clearImmediate],
clearInterval: [Function: clearInterval],
clearTimeout: [Function: clearTimeout],
setImmediate:
{ [Function: setImmediate] [Symbol(util.promisify.custom)]: [Function] },
setInterval: [Function: setInterval],
setTimeout:
{ [Function: setTimeout] [Symbol(util.promisify.custom)]: [Function] } }
Object [global] {
DTRACE_NET_SERVER_CONNECTION: [Function],
DTRACE_NET_STREAM_END: [Function],
DTRACE_HTTP_SERVER_REQUEST: [Function],
DTRACE_HTTP_SERVER_RESPONSE: [Function],
DTRACE_HTTP_CLIENT_REQUEST: [Function],
DTRACE_HTTP_CLIENT_RESPONSE: [Function],
global: [Circular],
process:
process {
title: '/usr/local/bin/node',
version: 'v10.3.0',
versions:
{ http_parser: '2.8.0',
node: '10.3.0',
v8: '6.6.346.32-node.9',
uv: '1.20.3',
zlib: '1.2.11',
ares: '1.14.0',
modules: '64',
nghttp2: '1.29.0',
napi: '3',
openssl: '1.1.0h',
icu: '61.1',
unicode: '10.0',
cldr: '33.0',
tz: '2018c' },
arch: 'x64',
platform: 'darwin',
release:
{ name: 'node',
sourceUrl:
'https://nodejs.org/download/release/v10.3.0/node-v10.3.0.tar.gz',
headersUrl:
'https://nodejs.org/download/release/v10.3.0/node-v10.3.0-headers.tar.gz' },
argv:
[ '/usr/local/Cellar/node/10.3.0/bin/node',
'/Users/00arunalldata00/009_mystudy/010_everest/001_Everest4/20180628/201804/7.fs/11.fn.js' ],
execArgv: [],
env:
{ PATH:
'/usr/local/opt/openssl/bin:/opt/vagrant/bin:/usr/local/sbin:/usr/local/opt/sqlite/bin:/usr/local/opt/openresty-openssl/bin:/usr/local/opt/icu4c/sbin:/usr/local/mysql/bin:/usr/local/opt/icu4c/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin:/Applications/Wireshark.app/Contents/MacOS',
NVM_RC_VERSION: '',
FORCE_COLOR: 'true',
ELECTRON_NO_ATTACH_CONSOLE: 'true',
DEBUG_COLORS: 'true',
npm_config_color: 'always',
MOCHA_COLORS: '1',
VERSIONER_PYTHON_VERSION: '2.7',
LOGNAME: 'arunyang',
NVM_NODEJS_ORG_MIRROR: 'https://nodejs.org/dist',
XPC_SERVICE_NAME: 'com.jetbrains.WebStorm.77156',
PWD:
'/Users/00arunalldata00/009_mystudy/010_everest/001_Everest4/20180628/201804/7.fs',
NVM_CD_FLAGS: '-q',
NVM_DIR: '/Users/arunyang/.nvm',
SHELL: '/bin/zsh',
PAGER: 'less',
LSCOLORS: 'Gxfxcxdxbxegedabagacad',
SECURITYSESSIONID: '186a8',
OLDPWD: '/Applications/WebStorm.app/Contents/bin',
VERSIONER_PYTHON_PREFER_32_BIT: 'no',
USER: 'arunyang',
ZSH: '/Users/arunyang/.oh-my-zsh',
TMPDIR: '/var/folders/wy/v0w9vkf52836x21w_jz2wzlh0000gn/T/',
SSH_AUTH_SOCK: '/private/tmp/com.apple.launchd.IKTjc3zbdP/Listeners',
XPC_FLAGS: '0x0',
NVM_IOJS_ORG_MIRROR: 'https://iojs.org/dist',
__CF_USER_TEXT_ENCODING: '0x1F5:0x0:0x0',
Apple_PubSub_Socket_Render: '/private/tmp/com.apple.launchd.huBMuc0K3M/Render',
LESS: '-R',
LC_CTYPE: '',
HOME: '/Users/arunyang' },
pid: 3023,
features:
{ debug: false,
uv: true,
ipv6: true,
tls_alpn: true,
tls_sni: true,
tls_ocsp: true,
tls: true },
ppid: 2534,
execPath: '/usr/local/Cellar/node/10.3.0/bin/node',
debugPort: 9229,
_startProfilerIdleNotifier: [Function: _startProfilerIdleNotifier],
_stopProfilerIdleNotifier: [Function: _stopProfilerIdleNotifier],
_getActiveRequests: [Function: _getActiveRequests],
_getActiveHandles: [Function: _getActiveHandles],
reallyExit: [Function: reallyExit],
abort: [Function: abort],
chdir: [Function: chdir],
cwd: [Function: cwd],
umask: [Function: umask],
getuid: [Function: getuid],
geteuid: [Function: geteuid],
setuid: [Function: setuid],
seteuid: [Function: seteuid],
setgid: [Function: setgid],
setegid: [Function: setegid],
getgid: [Function: getgid],
getegid: [Function: getegid],
getgroups: [Function: getgroups],
setgroups: [Function: setgroups],
initgroups: [Function: initgroups],
_kill: [Function: _kill],
_debugProcess: [Function: _debugProcess],
_debugEnd: [Function: _debugEnd],
hrtime: [Function: hrtime],
cpuUsage: [Function: cpuUsage],
dlopen: [Function: dlopen],
uptime: [Function: uptime],
memoryUsage: [Function: memoryUsage],
_rawDebug: [Function],
moduleLoadList:
[ 'Binding contextify',
'NativeModule events',
'NativeModule internal/async_hooks',
'NativeModule internal/errors',
'Binding uv',
'Binding buffer',
'Binding async_wrap',
'Binding config',
'Binding icu',
'NativeModule util',
'NativeModule internal/encoding',
'NativeModule internal/util',
'Binding constants',
'Binding util',
'NativeModule internal/util/types',
'Internal Binding types',
'NativeModule buffer',
'NativeModule internal/buffer',
'NativeModule internal/process',
'NativeModule assert',
'NativeModule internal/assert',
'NativeModule fs',
'NativeModule path',
'NativeModule internal/constants',
'Binding fs',
'NativeModule stream',
'NativeModule internal/streams/pipeline',
'NativeModule internal/streams/end-of-stream',
'NativeModule internal/streams/legacy',
'NativeModule _stream_readable',
'NativeModule internal/streams/buffer_list',
'NativeModule internal/streams/destroy',
'NativeModule internal/streams/state',
'NativeModule _stream_writable',
'NativeModule _stream_duplex',
'NativeModule _stream_transform',
'NativeModule _stream_passthrough',
'Binding fs_event_wrap',
'NativeModule internal/fs/utils',
'NativeModule internal/url',
'NativeModule internal/querystring',
'Binding url',
'NativeModule internal/process/warning',
'NativeModule internal/process/next_tick',
'NativeModule internal/process/promises',
'NativeModule internal/fixed_queue',
'NativeModule internal/process/stdio',
'Binding performance',
'Binding trace_events',
'NativeModule internal/inspector_async_hook',
'Binding inspector',
'NativeModule timers',
'Binding timer_wrap',
'NativeModule internal/linkedlist',
'NativeModule internal/timers',
'NativeModule internal/modules/cjs/loader',
'NativeModule vm',
'NativeModule internal/modules/cjs/helpers',
'NativeModule console',
'Binding tty_wrap',
'NativeModule net',
'NativeModule internal/net',
'Binding cares_wrap',
'Binding stream_wrap',
'Binding tcp_wrap',
'Binding pipe_wrap',
'NativeModule internal/stream_base_commons' ],
binding: [Function: binding],
_linkedBinding: [Function: _linkedBinding],
_events:
{ newListener: [Function],
removeListener: [Function],
warning: [Function] },
_eventsCount: 3,
_maxListeners: undefined,
_fatalException: [Function],
domain: null,
_exiting: false,
assert: [Function: deprecated],
config: { target_defaults: [Object], variables: [Object] },
setUncaughtExceptionCaptureCallback: [Function],
hasUncaughtExceptionCaptureCallback: [Function],
emitWarning: [Function],
nextTick: [Function: nextTick],
_tickCallback: [Function: _tickCallback],
stdout: [Getter],
stderr: [Getter],
stdin: [Getter],
openStdin: [Function],
exit: [Function],
kill: [Function],
argv0: '/usr/local/bin/node',
mainModule:
Module {
id: '.',
exports: {},
parent: null,
filename:
'/Users/00arunalldata00/009_mystudy/010_everest/001_Everest4/20180628/201804/7.fs/11.fn.js',
loaded: false,
children: [],
paths: [Array] } },
Buffer:
{ [Function: Buffer]
poolSize: 8192,
from: [Function: from],
of: [Function: of],
alloc: [Function: alloc],
allocUnsafe: [Function: allocUnsafe],
allocUnsafeSlow: [Function: allocUnsafeSlow],
isBuffer: [Function: isBuffer],
compare: [Function: compare],
isEncoding: [Function: isEncoding],
concat: [Function: concat],
byteLength: [Function: byteLength],
[Symbol(kIsEncodingSymbol)]: [Function: isEncoding] },
clearImmediate: [Function: clearImmediate],
clearInterval: [Function: clearInterval],
clearTimeout: [Function: clearTimeout],
setImmediate:
{ [Function: setImmediate] [Symbol(util.promisify.custom)]: [Function] },
setInterval: [Function: setInterval],
setTimeout:
{ [Function: setTimeout] [Symbol(util.promisify.custom)]: [Function] } }
*/