js函数调用模式
2021-02-18 10:16
标签:UNC 除了 函数调用 for call 定义 情况下 添加 this 函数模式 简单的函数调用,前面没有任何引导内容 this 的含义: 在 函数中 this 表示全局对象, 在浏览器中this表示window。 注:任何自调用函数都是函数模式 方法模式 方法一定是依附于一个对象,将函数赋值给对象的一个属性,那么就成为了方法 this的含义:这个依附的对象 注:arguments 这种伪数组, 或者 [] 数组这样的对象中, 这样调用函数也是方法调用, this 会只指向对象 构造器模式(构造函数模式,构造方法模式) 关于return的补充: 在构造函数中,普通情况,可以理解为构造函数已经默认进行了return this,添加在后面的都不会执行 如果手动的添加 return ,就相当于 return this. 如果手动的添加 return 基本类型(字符串, 数字, 布尔), 无效, 还是 return this 如果手动的添加 return null 或 return undefined, 无效, 还是 return this 特殊情况, return对象, 最终返回对象 手动添加return对象类型,那么原来创建的this会被丢掉,返回 return 后面的对象 上下文调用模式 上下文调用模式也叫方法借用模式,分为apply与call,上下文 就是环境, 就是自定义设置this的含义 语法: 函数名.apply(对象,[参数]); 函数名.call(对象,参数); 描述: 函数名就是表示的函数本身, 使用函数进行调用的时候默认 this 是全局变量 函数名也可以是方法提供, 使用方法调用的时候, this 是指当前对象. 使用apply进行调用后, 无论是函数,还是方法都无效了。我们的 this, 由apply的第一个参数决定 注意: 如果函数或方法中没有 this 的操作, 那么无论什么调用其实都一样. 如果是函数调用foo(),那么有点像foo.apply(window). 如果是方法调用o.method(),那么有点像o.method.apply(o). 无论是call还是apply在没有后面的参数的情况下(函数无参数,方法无参数)是完全一样的。 第一个参数的使用也是有规则的 如果传入的是一个对象, 那么就相当于设置该函数中的 this 为参数 如果不传入参数, 或传入null、 undefiend 等, 那么相当于this默认为 window。 js函数调用模式 标签:UNC 除了 函数调用 for call 定义 情况下 添加 this 原文地址:https://www.cnblogs.com/lulu090110/p/12943618.htmlfunction foo(){}
var func=function(){};
...
foo();
func();
(function(){})()
function f(){
this.method=function(){}
}
var f={
method:function(){}
}
arguments
对象不是一个Array 。它类似于Array,但除了length属性和索引元素之外没有任何Array
属性。例如,它没有pop 方法。但是它可以被转换为一个真正的Array
var args=Array.prototype.slice.call(arguments);
var args=[].slice.call(arguments);
// ES2015
const args=Array.form(arguments);
const args=[...arguments];