javascript call apply

call :

call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。 
  如果没有提供 thisObj 参数,那么 Global 对象被用作thisObj。说明白一点其实就是更改对象的内部指针,即改变对象的this指向的内容。这在面向对象的js编程过程中有时是很有用的。

apply:

应用某一对象的一个方法,用另一个对象替换当前对象。

如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。

function Animal(xx){

this.name=‘zhu‘
this.showName=function (cc,jj){
alert(this.name+cc+‘,‘+jj);

}
alert(this.name+xx);
}
function Cat()
{
this.name=‘cat‘;

}
//var animal=new Animal();
//var cat=new Cat();
Animal.call(Cat,‘df‘);
//this.name;

Animal.apply();
//this.name;

var zhu=function(name){this.name=name};
var ben=function(sex){this.sex=sex;}
var xi=function(age){this.age=age;}
var people=function(name,sex,age,score){zhu.call(this,name);ben.call(this,sex);xi.call(this,age);this.score=score;}
people.prototype.construction=people;
var p=new people(‘zhao‘,‘male‘,‘11‘,‘78‘);
console.log(p.name);
console.log(p.sex);
console.log(p.age);
console.log(p.score);

function Animal(name)
{
this.name=name;
this.showName=function(){alert(this.name);}
}
function Cat(name)
{
Animal.call(this,name);
}
var cat=new Cat(‘White cat‘);
cat.showName();

function Animal(){

this.name=‘Animal‘;
this.showName=function(aa){
alert(this.name+aa);
}
}
function Cat()
{
this.name=‘Cat‘;
}
var animal=new Animal();
var cat=new Cat();
animal.showName.call(cat,‘kk‘);

function add(a,b)
{
alert(a+b);
}
function sub(a,b)
{
alert(a-b);
}
add.call(sub,4,9);

function base(){this.member="a people";this.method=function(){window.alert(this.member);}}
function extend()
{
base.call(this);

window.alert(member);
method();
window.alert(this.method);
}
extend();

var ClassA={create:function(){ return function(){ this.cc.apply(this,arguments);this.ee.apply(this,arguments); } }} var vehicle=ClassA.create(); vehicle.prototype={ee:function(uu,kk){alert("0")} ,cc:function(type,xx){this.type=type;this.xx=xx;},showSelf:function(){ alert(this.xx+"this +vehile"+this.type);}} var moto=new vehicle("Moto","lll"); moto.showSelf();

var a="jjj"; var b="abc";var func=new function(){this.a="func";this.b="bbb";} var myfunc=function(x){ var a="myfunc";this.b="kkk"; alert(this.a); alert(this.b); }; myfunc.call(func,"var");

时间: 2024-10-25 17:51:34

javascript call apply的相关文章

javascript中apply、call和bind的区别,容量理解,值得转!

a)  javascript中apply.call和bind的区别:http://www.cnblogs.com/cosiray/p/4512969.html b)  深入浅出 妙用Javascript中apply.call.bind   http://www.admin10000.com/document/6711.html ====================================================== 在JS中,这三者都是用来改变函数的this对象的指向的,他们

关于JavaScript中apply与call的用法意义及区别(转)

JavaScript中有一个call和apply方法,其作用基本相同,但也有略微的区别.先来看看JS手册中对call的解释: call 方法调用一个对象的一个方法,以另一个对象替换当前对象.call([thisObj[,arg1[, arg2[,   [,.argN]]]]])参数thisObj可选项.将被用作当前对象的对象.arg1, arg2,  , argN可选项.将被传递方法参数序列.说明call 方法可以用来代替另一个对象调用一个方法.call 方法可将一个函数的对象上下文从初始的上下

深入浅出妙用 Javascript 中 apply、call、bind

原文地址:深入浅出妙用 Javascript 中 apply.call.bind apply.call 在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向. JavaScript 的一大特点是,函数存在「定义时上下文」和「运行时上下文」以及「上下文是可以改变的」这样的概念. 先来一个栗子:eg1: function fruits() {} fruits.prototype = {

解析JavaScript中apply和call以及bind

函数调用方法 在谈论JavaScript中apply.call和bind这三兄弟之前,我想先说下,函数的调用方式有哪些: 作为函数 作为方法 作为构造函数 通过它们的call()和apply()方法间接调用 前面的三种调用方法,我们都知道且不在这篇文章的讨论范围内,就不说了. 下面我们来说说这第四种调用方法 通过call()和apply()间接调用 其实,我们可以将这两个函数看做是某个对象的方法,通过调用方法的方式来间接调用函数: function f(){} f.call(o); f.appl

javascript的apply和call方法的使用详解

一直对javascript的apply和call方法的使用比较模糊,前段时间在研究angularjs的源代码时,发现这两个方法非常的强大,使用的场景非常多,这里做个总结. apply和call都是对某个方法的应用,区别在于apply有两个参数:apply(obj,args),其中obj为方法应用的对象,args为参数数组:call有多个参数,call(obj,arg1,arg2,arg3......),obj和apply的obj一样,而参数则是用逗号隔开,有多少个参数就传多少个.下面以apply

每天一个JavaScript实例-apply和call的用法

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>每天一个JavaScript实例-apply和call的用法</title> <script> function Person(name,age){ //定义一个类,人类

javascript中apply()方法和call()方法有什么区别?

JavaScript作为web前端开发的必用技术之一,在前端编写的过程中,都会涉及到.但在编写JavaScript的过程中,有一些方法却让人很是纳闷,比如apply()和call()方法. 存在即是合理的,很多时候在编程中,我们不得不用apply()和call()方法的场景,下面我们就通过代码来看看这两种方法的应用. <html> <body> <script> var product = "house"; var boss = { chooseWo

理解 JavaScript call()/apply()/bind()

理解 JavaScript this 文章中已经比较全面的分析了 this 在 JavaScript 中的指向问题,用一句话来总结就是:this 的指向一定是在执行时决定的,指向被调用函数的对象.当然,上篇文章也指出可以通过 call() / apply() / bind() 这些内置的函数方法来指定 this 的指向,以达到开发者的预期,而这篇文章将进一步来讨论这个问题. 先来回顾一下,举个简单的例子: var leo = { name: 'Leo', sayHi: function() {

转---深入浅出妙用 Javascript 中 apply、call、bind

作者:伯乐在线专栏作者 - chokcoco 如有好文章投稿,请点击 → 这里了解详情 如需转载,发送「转载」二字查看说明 这篇文章实在是很难下笔,因为网上相关文章不胜枚举. 巧合的是前些天看到阮老师的一篇文章的一句话: "对我来说,博客首先是一种知识管理工具,其次才是传播工具.我的技术文章,主要用来整理我还不懂的知识.我只写那些我还没有完全掌握的东西,那些我精通的东西,往往没有动力写.炫耀从来不是我的动机,好奇才是." 对于这句话,不能赞同更多,也让我下决心好好写这篇,网上文章虽多,

再次理解javascript的apply

普通函数执行的时候,this指向函数执行的上下文 其实就是一个原型链的结构... 我一直没有搞懂原型链莫非它们像链条一样连在一起? 昂... 原型链可以理解成继承吗? 就像,java里边的继承吧嗯嗯刚想说这个 写js的时候一般没用到这里,还有apply()和call()一直搞不清太灵活了,不知道是什么,想要干啥 ES6新的语法来讲,你可能会看着比较熟悉了 call 和 apply就是绑定一个函数执行的 this指向 觉apply()和代码上下文有很大关系 这意思是修改父类吗? 不是.. 那我又不