您的位置:

js多个call(js多个参数值转为数组)

js多个call(js多个参数值转为数组)

更新:

本文目录一览:

如何理解和熟练运用js中的call及apply

call和apply

obj.call(thisObj, arg1, arg2, ...);

obj.apply(thisObj, [arg1, arg2, ...]);

两者作用一致,都是把obj(即this)绑定到thisObj,这时候thisObj具备了obj的属性和方法。或者说thisObj『继承』了obj的属性和方法。绑定后会立即执行函数。

唯一区别是apply接受的是数组参数,call接受的是连续参数。

function add(j, k){

return j+k;

}

function sub(j, k){

return j-k;

}

我们在控制台运行:

add(5,3); //8

add.call(sub, 5, 3); //8

add.apply(sub, [5, 3]); //8

sub(5, 3); //2

sub.call(add, 5, 3); //2

sub.apply(add, [5, 3]); //2

调用原生对象的方法

示例:

var a = {0:1, 1:"yjc", length: 2};

a.slice(); //TypeError: a.slice is not a function

Array.prototype.slice.call(a);//[1, "yjc"]

对象a类似array,但不具备array的slice等方法。使用call绑定,这时候就可以调用slice方法。

实现继承

通过call和apply,我们可以实现对象继承。示例:

var Parent = function(){

this.name = "yjc";

this.age = 22;

}

var child = {};

console.log(child);//Object {} ,空对象

Parent.call(child);

console.log(child); //Object {name: "yjc", age: 22}

以上实现了对象的继承。

bind的使用

obj.bind(thisObj, arg1, arg2, ...);

把obj绑定到thisObj,这时候thisObj具备了obj的属性和方法。与call和apply不同的是,bind绑定后不会立即执行。

同样是add()和sub():

add.bind(sub, 5, 3); //不再返回8

add.bind(sub, 5, 3)(); //8

如果bind的第一个参数是null或者undefined,等于将this绑定到全局对象。

在JS中,call()方法和apply()方法到底该怎么应用?

1.apply与call是更改对象的内部指针,即改变对象的this指向的内容;

2.call与apply的第一个参数都是要传入给当前对象的对象,及函数内部的this,后面的参数都是传递给当前对象的参数。

详细用法如下:

1.call()

语法:obj1.call(obj2[,param1,param2,...]);

定义:用obj2对象来代替obj1,调用obj1的方法。即将obj1应用到obj2上;

说明:call 方法可以用来代替另一个对象调用一个方法,call 方法可将一个函数的对象上下文从初始的上下文改变为由 obj2 指定的新对象,如果没有提供 obj2参数,那么 Global 对象被用作 obj2。

2.apply()

语法:obj1.call(obj2[,arrArg]);

定义:用obj2对象来代替obj1,调用obj1的方法,即将obj1应用到obj2上,

说明:call ()和apply()作用一样,但是call()可以接收任何类型的参数,而apply()只能接收数组参数。

3.基本用法

4.继承特性

JS中 call和apply的区别和作用

JavaScript中的每一个function对象都会有call和apply方法

定义:

apply:调用一个对象的一个方法,用另一个对象替换当前对象。例如:B.apply(A, arguments);即A对象应用B对象的方法。

call:调用一个对象的一个方法,用另一个对象替换当前对象。例如:B.call(A, args1,args2);即A对象调用B对象的方法

从定义中可以看出,call和apply都是调用一个对象的一个方法,用另一个对象替换当前对象。而不同之处在于传递的参数,apply最多只能有两个参数——新this对象和一个数组argArray,如果arg不是数组则会报错TypeError;

call则可以传递多个参数,第一个参数和apply一样,是用来替换的对象,后边是参数列表。

请教一个js函数里面的call方法

亲,call方法:

语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]])

定义:调用一个对象的一个方法,以另一个对象替换当前对象。

说明:

call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。

如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。

看看下面的例子你就明白为什么那里没有执行:

function add(a,b)

{

alert(a+b);

}

function sub(a,b)

{

alert(a-b);

}

add.call(sub,3,1);

这个例子中的意思就是用 add 来替换 sub,add.call(sub,3,1) == add(3,1) ,所以运行结果为:alert(4); // 注意:js 中的函数其实是对象,函数名是对 Function 对象的引用。

js多个call(js多个参数值转为数组)

本文目录一览: 1、如何理解和熟练运用js中的call及apply 2、在JS中,call()方法和apply()方法到底该怎么应用? 3、JS中 call和apply的区别和作用 4、请教一个js函

2023-12-08
js高级程序设计笔记14(js高级程序设计笔记14页)

本文目录一览: 1、JavaScript高级程序设计 该怎么看 2、JavaScript学习笔记之数组基本操作示例 3、JS中有关sort以及return的问题 JavaScript高级程序设计 该怎

2023-12-08
htmljs编程笔记(html代码笔记)

本文目录一览: 1、html代码和JS代码有什么区别 2、如何在html中调用js函数 3、JavaScript学习笔记之数组基本操作示例 4、HTML5初学者笔记 5、《web前端笔记7》js字符—

2023-12-08
js代码总结体会,js基础知识总结笔记

本文目录一览: 1、js到底难不难学? 2、JS 代码 求解释 可以详细的 说明一下 谢谢 3、浅谈js写轮播图的思路与心得 4、JavaScript与WEB前台开发课程实训总结怎么写 5、js中继承

2023-12-08
js传参数php(js传参数多个PHP获取)

本文目录一览: 1、如何把一个js变量传给php变量 2、JS的值怎么传递给PHP 3、js 如何获取值并传到php 如何把一个js变量传给php变量 js仅在 浏览器中运行.php 仅在服务器端运行

2023-12-08
理解js中的call,js深入理解

2022-11-24
js中call的使用问题,jscall

本文目录一览: 1、Js中call和apply的区别和用法是什么? 2、在JS中,call()方法和apply()方法到底该怎么应用? 3、js中的call 4、如何理解和熟练运用js中的call及a

2023-12-08
php数组赋值给js数组(php数组增加一个值)

2022-11-12
js数组编程入门,数组操作方法js

本文目录一览: 1、JS 数组相关操作 2、JavaScript学习笔记之数组基本操作示例 3、js-数组-1 JS 数组相关操作 push()可以将某些值加入到数组的最后一个位置,并且不限制添加数量

2023-12-08
javascript简要笔记,JavaScript读书笔记

2022-11-17
40个js实例(js什么是实例)

本文目录一览: 1、求JS分页实例或者servlet分页实例,最好有例子能直接运行看看效果 2、js中的数组应用实例 3、JavaScript学习笔记之数组基本操作示例 4、JS隐藏号码中间4位代码实

2023-12-08
php转js数组,php数组实现

本文目录一览: 1、php 二维数组转JS 2、如何将php数组的值传递给javascript数组? 3、php数组转js数组 4、php二维数组转为js二维数组? 5、php数组如何转换为js数组?

2023-12-08
js一个数组去重复的数据库,js数组找到重复次数最多的

本文目录一览: 1、js去掉数组中重复的元素 2、js怎么去除数组中的重复的数据 3、js中怎么去除数组中重复的数据 4、js删除数组中重复的值 5、Js中去除数组中重复元素的几种方法 js去掉数组中

2023-12-08
js获取java的数组,java获取json中的数组

本文目录一览: 1、在js文件中怎么获得java方法返回的值 2、js中获取java文件传过来的list对象列表 3、js 数组 在java中怎么读取 4、JS怎么接收Java返回的数组?求解答 在j

2023-12-08
js调用cs带参数(js 调用方法中的参数)

本文目录一览: 1、如何在JS中调用.CS中的类 2、.cs中注册的js函数怎么调用.cs中的方法? 3、如何利用JS实现对后台CS代码的调用 4、js外部文件如何调用cs文件中的函数. 5、如何在j

2023-12-08
php数组怎么转成js数组(php传数组给js)

本文目录一览: 1、如何将php数组的值传递给javascript数组? 2、php二维数组转为js二维数组? 3、php数组转js数组 如何将php数组的值传递给javascript数组? 把对象数

2023-12-08
将php数组转js数组,php字符串转数组函数

本文目录一览: 1、php数组如何转换为js数组? 举例如下: 2、如何将PHP数组的数据插入到javascript数组中 3、php二维数组转为js二维数组? 4、PHP数组中的值如何传递给JS数组

2023-12-08
js怎样取出php数组的值(js如何获取数组的值)

本文目录一览: 1、js如何获取php数组 2、js如何获取php页面数组里面的值 3、js获取php的返回数组 js如何获取php数组 刚写的 没测试 给你个思路 你参考一下 form action

2023-12-08
js数组push源码,js数组push返回值

本文目录一览: 1、JS 数组里明明没有添加元素length却为1还有元素(jquery源码里面) 2、js数组的push操作会返回一个最新的数组 3、js如何动态添加数组? 4、js二维数组push

2023-12-08
一个网页中多个js怎么做,一个网页中多个js怎么做

2022-11-25