调用函数 javascript-JavaScript 直接调用函数和直接调用函数的区别

2023-08-21 0 7,541 百度已收录

直接打电话

直接调用函数是最常见、最常见的方法。 函数附加的对象直接作为调用者,通过在函数后面的括号内传递参数来调用函数。

例如:

window.alert("测试代码");

如果调用者是窗口,可以省略,即直接alert("测试代码");

使用 call() 调用该函数

句子模式:call([thisObject[,arg1[,arg2[,...,argn]]]]);

新朋友似乎直接调用就够了,虽然不然,直接调用函数的方法简单易用但不够灵活。 有时在调用函数时,需要动态传入函数引用。 这时,为了动态调用该函数,只需要使用call方法来调用

例如:

 
 var each =function(array,fn)
 {
	for(var index in array)
	{
		fn.call(null,index,array[index]);
	}
 }
 each([4,20,3],function (index,ele)
				{
					document.write("第"+index+"个元素是"+ele+"
"); } );

乍一看可能会头晕。 注意fn.call这句话。 call调用的格式是在参数中先填写调用者,然后按顺序输入参数。 参数方法有很大不同。 与直接调用不同,上面没有写调用者,而是参数的第一项。 格式:fn.call(obj,args);

听到这里,你应该对call和direct call的区别有疑问。 不同的是调用改变了this指针指针。 如果在被调用的函数中没有使用this,就不会有什么区别。

这是另一个例子,其中被调用的函数有一个 this 指针:

var x = "我是全局变量";    //定义全局变量x
function a(){         //定义函数类结构a  
    this.x = "我是在函数类结构a中声明的哦";    
}
//定义普通函数,弹出当前指针所包含的变量x的值
function f(){       
    alert (this.x);
}
//返回值为“我是在函数类结构a中声明的哦”
f.call(new a());

我的理解是f.call(newa())就是将函数(虽然也是一个对象)f复制到被调用的对象“newa()”中进行分析。 其实下面代码的分析结果是一样的:

function a(){
  this.x = "我是在函数类结构a中声明的哦";
  alert(this.x);    
}
a();

事实上,当调用f.call()时,f()中的this指针被改变。 本来,f中的this.a和this.b属性是自己的,而当f.call()调用时,传入了一个新的对象e()(this)调用函数 javascript,这样e就绑定到了f中的this调用函数 javascript,最初为 f 降低的属性已添加到 e 中。 (e和e(),f和f()是等价的)有点类似“继承”,不过这在JS里应该叫对象伪装

使用 apply() 方法调用该函数

apply()方法的功能与call()方法类似,都可以用来动态调用函数。 apply() 和 call() 的区别如下:

句子模式:apply([thisObj[,argArray]]);

例如,下面两个句子是等价的:

myfun.call(window,12,13);
myfun.capply(window,[12,13]);

在改变this指针方面,apply()和call()也是一致的,

一般来说,apply()和call()只是传递参数的方式不同。

调用部分的第二个反例引用了以下博主:

推送、移位、弹出、拼接、排序、反转、连接、连接、拆分

一。通过为下标编制索引来操作字段

1.通过索引下标,调用字段,指定单位的数据

var arr = ['北京','上海','广州','重庆','天津'];
arr[0] ---> 调用索引下标是 0 ,实际是第一个单元的数据 北京

2. 通过索引下标更改存储在字段中的单位数据

对于现有的索引下标,执行形式参数,执行重复的参数,这将覆盖之前存储的数据

arr[0] = '武汉';

控制台.log(到达);

3. 通过索引下标添加链表的一个单元

对不存在的索引下标执行形式参数是添加链表单元格的操作

连续索引 
    arr[5] = '郑州';
间隔索引
    arr[100] = '瞎写的';
    console.log(arr);
    console.log(arr[50]);   →   undefined

4. 通过索引下标删除链表的单位

定义链表的长度宽度属性,并删除

通过定义字段的单元格数来链接列表单元格只能从链表

的末尾删除,而不能从链表的开头删除

一般不使用,除非有必要限制字段的宽度

arr.length = 100;
arr.length = 6;
console.log(arr);

二。在字段中添加或删除单元格及其返回值

unshift() 以一个或多个开头

push() 结束加法,可以是一个或多个

shift() 只能在开头删除

pop() 只能是一个

摘要:新增内容可以是一个或多个

调用函数 javascript-JavaScript 直接调用函数和直接调用函数的区别

一次只能删除一个

1.在数组的开头和结尾---添加单元格

数组变量 .unshift(新数据)在链表的开头添加一个单元格

数组变量 .unshift(data1, data2, data3...) 可以添加多个介于两者之间带有冒号间隔的单元格

添加写入多个字段变量时,链表中从下到上的写入顺序是从左到右

新单位可以是任何 JavaScript 支持的数据类型

数组变量 .push(新数据)在链表末尾添加一个单元格

数组变量 .push(data1, data2, data3...)可以添加多个单元格,结肠间隔在

他们

添加写入多个字段变量时,链表中从下到上书写的顺序是从右到左

新单位可以是任何 JavaScript 支持的数据类型

push() 是向字段添加内容的最常见方法

var arr = ['北京','上海'];
arr.unshift('武汉');
arr.unshift('武汉加油','武汉棒棒哒');
arr.unshift([1,2,3,4,5]);
arr.unshift(function fun(){console.log(123)});
arr.unshift( {name:'张三'} );
arr.push('武汉');
arr.push('武汉加油','武汉棒棒哒');
arr.push([1,2,3,4,5]);
arr.push(function fun(){console.log(123)});
arr.push( {name:'张三'} );

2. 从链表中删除单元格

Array.shift(什么都不写,写没用)只能删除第一个启动的单元

Array.pop(什么都不写javascript数组的方法,写没用)只能删除最后最后一个单元

arr.shift();
arr.pop();
console.log(arr);

3. 链表操作方法(添加或删除单元格)的返回值。

unshift() push() shift() pop()

函数是

操作链表,返回值是写入函数内部定义的返回值

unshift() push() 添加一个单元格操作,返回值是新单位之后数组的新宽度javascript数组的方法,即 length 属性值

shift() pop() 删除单元格操作,返回值是删除单元存储的数据

删除单元,也称为抛掷释放消除

var arr = [1,2,3,4,5];

定义一个变量来存储返回值,但也可以直接输出操作

操作完成后,执行新单元格,数组为新宽度

  var res1 = arr.unshift('北京');
    var res2 = arr.push('北京');
    console.log(arr);
    console.log(res1);  →  6
    console.log(res2);  →  7

删除操作移位,弹出,返回值为已删除单位的数据信息

var res3 = arr.shift();
console.log(res3);  →   北京

三。截取链表的指定单元格/删除链表的指定单元格及其返回值

var arr = ['北京','上海','广州','重庆','天津'];

删除广州重庆

方法1,从结束位置删除3个单位

然后添加天津

方法 2, array.splice().

参数 1:删除起始单位的位置 - 索引下标

参数 2:要删除的单元格数 - 从起始单元开始删除多个单元格

参数 3:在已删除位置插入新数据

将插入的数据(不写入)或一个或多个数据替换为多个单元格之间的冒号间距

它的内容可以是任何JavaScript支持的数据类型

从索引下标开始是 2,这是第三个单元格,删除 2 个单元格

运算结果的返回值是由删除单元组成的存储数据信息

  var res = arr.splice(2,2);
    console.log(arr);
    console.log(res);

如果只写入一个参数,则首先删除位置,然后删除所有后续单位,包括起始位置单位

 arr.splice(2);

调用函数 javascript-JavaScript 直接调用函数和直接调用函数的区别

如果不写参数,则没有疗效

 arr.splice();

编写三个单元来执行治疗效果类似于替换操作

从索引下标为 2(实际上是第三个单元格)开始,删除 2 个单元格(包索引 2 的单位)。

然后替换插入的数据武汉,来吧

var res2 = arr.splice(2,2,'武汉','加油');
console.log(arr);
console.log(res2);

四。数组的排序方式

根据数值的大小对链表中的数据进行排序

默认情况下,array.sort() 根据第一个数值进行排序,而不是根据值的实际大小进行排序

数字 .sort( function(a,b){return a-b} ) 按值的实际大小排序 — 从小到大

数字 .sort( function(a,b){return b-a} ) 按数值的实际大小排序 — 从大到小

var arr = [3,21,3215432,321321,32,43,5,34,43,23,32543,1234,45,321,14,234,4];

默认情况下,数组的排序方法是根据第一个数值进行排序,而不是根据数值的实际大小进行排序

arr.sort();

从小到大的固定句型

arr.sort( function(a,b){return a-b} )

从大到小的固定句型

arr.sort( function(a,b){return b-a} )

控制台.log(到达);

五。数组反转

array.reverse();

数组的反转会更改原始字段的内容

例如,在新闻信息显示中,数据库和数组中的最新新闻反转到顶部以首先显示

var arr = ['北京','上海','广州','重庆','天津'];
arr.reverse();
console.log(arr);   →  原数组倒着写

六。阵列拼接数组

1.concat(数组 2)。

将两个链表拼接成一个链表

在未来,

两个链表的数据内容将被拼接

var arr1 = [1,2,3,4,5];
var arr2 = ['北京','上海','广州','重庆','天津'];
var arr3 = arr1.concat(arr2);
console.log(arr3);

七。链表和字符串的转换

数组 .join() 不会更改原始字段的内容

返回值为字符串类型,内容为链表中每个单元格存储的数据信息,默认使用冒号间隔

按照手动转换准则将其他数据类型转换为字符串类型

var arr = ['北京','上海','广州','重庆','天津',true,false,100,[1,2,3,4],{name:'张三'},function fun(){}];

默认冒号间隔

  var res1 = arr.join();

设置间隔符号

 var res2 = arr.join('-');   

没有间隔符号,设置空字符串作为间隔

 var res3 = arr.join('');  

console.log(arr);
console.log(res1);
console.log(res2);
console.log(res3);

八。字符串转换为链表

将字符串、剪切存储为链表的方法

字符串 .split 不会更改原始字符串

返回值为:根据字符串转换为链表

语法 1:在不定义参数的情况下,将整个字符串转换为链表的一个单元

语法 2:将参数定义为 '' 空字符串将每个字符转换为一个单位

语法 3:可以根据特定的间隔符号拆分字符串

在存储单元数据内容中,没有间隔符号

语法4:设置第二个参数,即设置链表的单元格数量,即长度宽度

一般不写

根据间隔符号 - 减号拆分字符串并以链表模式存储它们

并将链表设置为 3 个单位 北京

var str1 = '北京-上海-广州-天津-重庆';
    var res4 = str1.split('-' , 3);
    console.log(res4);

回顾

数组的操作方法

1. 索引下标操作

数组 [索引下标] 获取存储在索引下标中的数据

数组 [索引下标] = 数字;

如果索引下标已存在,则为参数更改操作

如果索引下标不存在,则为新单元操作

2、长度特性

数组的宽度,即单元格数

.length 数组获取链表中宽度的属性

array.length = 值 设置链表的宽度,可以删除多余的单元格

数组 .length -1 是最后一个单元格的索引下标

三、数组常用操作方法

我们使用JavaScript为我们封装的函数

	(1) 新增和删除
        unshift   首位新增
        push      末位新增
            新增可以是一个或者多个单元,返回值是操作之后,数组新的长度
        
        shift     首位删除
        pop       末位删除
            删除一次执行删除一个单元,返回值是删除单元,存储的数据
    (2) 截取/替换
        数组.splice()
            语法1 : 不定义参数,无效果
            语法2 : 定义一个参数
                    从定义的索引下标开始(包括),截取之后所有的单元
            语法3 : 定义两个参数
                    从定义的索引下标开始(包括),截取设定个数的单元
            语法4 : 定义三个参数
                    从定义的索引下标开始(包括),截取设定个数的单元
                    使用定义的数据替换
                    定义的数据,可以是一个或者多个,支持所有JavaScript数据类型
        返回值 : 是截取的单元内容
        
    (3) 排序
        数组.sort()    默认按照首字符串大小排序
        数组.sort(function(a,b){return a-b})    按照数值,从小到大排列
        数组.sort(function(a,b){return b-a})    按照数值,从大到小排列
    (4) 其他方法
        数组.reverse()  倒序,影响原来的数组
        数组.join()     数组转化字符串,不会影响原来数组
        字符串.split()  字符串转数组,不会影响原来数组
        数组.concat()    数组拼接


收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 javascript 调用函数 javascript-JavaScript 直接调用函数和直接调用函数的区别 https://www.wkzy.net/game/139121.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务