javaScript的call关键字

    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 对象的引用。
    function Class1() {
        this.name = "class1";

        this.showNam = function() {
            alert(this.name);
        }
    }

    function Class2() {
        this.name = "class2";
    }

    var c1 = new Class1();
    var c2 = new Class2();

    c1.showNam.call(c2);

    //注意,call 的意思是把 c1 的方法放到c2上执行,原来c2是没有showNam() 方法,
    //现在是把c1 的showNam()方法放到 c2 上来执行,
    //所以this.name 应该是 class2,执行的结果就是 :alert("class2"); 
    function Class1() {
        this.showTxt = function(txt) {
            alert(txt);
        }
    }

    function Class2() {
        Class1.call(this);
    }

    var c2 = new Class2();

    c2.showTxt("cc");
    //这样 Class2 就继承Class1了,Class1.call(this) 的 意思就是使用 Class1 对象代替this对象,
    //那么 Class2 中不就有Class1 的所有属性和方法了吗,
    //c2 对象就能够直接调用Class1 的方法以及属性了,执行结果就是:alert(“cc”);
    function Class10() {
        this.showSub = function(a, b) {
            alert(a - b);
        }
    }

    function Class11() {
        this.showAdd = function(a, b) {
            alert(a + b);
        }
    }

    function Class2() {
        Class10.call(this);
        Class11.call(this);
    }
    var obj = new Class2();
    obj.showSub(9,6);
    obj.showAdd(9,6);
    //用call实现多继承
时间: 2024-08-04 04:04:57

javaScript的call关键字的相关文章

Javascript中this关键字详解

原文出处:http://www.cnblogs.com/justany/archive/2012/11/01/the_keyword_this_in_javascript.html Quiz 请看下面的代码,最后alert出来的是什么呢? 1 var name = "Bob"; 2 var nameObj ={ 3 name : "Tom", 4 showName : function(){ 5 alert(this.name); 6 }, 7 waitShowNa

深入理解Javascript之this关键字

深入理解Javascript之this关键字 作者: Laruence(   ) 本文地址: http://www.laruence.com/2009/09/08/1076.html 转载请注明出处 Javascript是一种很灵活的语言, 而This关键字又是灵活中的灵活, 但是因为它的灵活, 也注定了它的难用. 以前我用this的时候, 都会觉得不踏实, 老是担心它不知道怎么地就会指到另外的什么地方. 其实, 这都是因为, 我们对它的不了解. 刚好最近再给百度学院做<Javascript高级

Javascript中的关键字和保留字

ECMA-262中描述了一组具有特定用途的关键字,可用于表示控制语句的开始或结束,或者用于执行特定操作等.规定:关键字属于语言保留,不可以用于标示符. ECMAScript的全部关键字(*为第五版新增): break do instanceof typeof case else new var catch finally return void continue for switch while debugger*   function this with default if throw de

JavaScript中this关键字的使用比较

JavaScript中this关键字的使用比较 this关键字在JavaScript中,用的不能说比较多,而是非常多.那么熟悉this关键字的各种用法则显得非常关键. this有时候就是我们经常说的上下文,这个东西的指代对象.它灵活多变,有时候你看它是对象,有时候是window宿主对象. 1.this指向宿主对象 function myWindow() { this.id = 1; // 等价于window.id = 1 console.log(this); // 这里的this就是window

深入解析Javascript中this关键字的使用

深入解析Javascript中面向对象编程中的this关键字 在Javascript中this关键字代表函数运行时,自动生成的一个内部对象,只能在函数内部使用.比如: function TestFunction(){ this.demoVal='This is a demo variable'; }; 随着函数使用的场合不同,this的值会发生改变.但是有一个总的原则:this指的是调用函数的那个对象. 接下来分情况讨论this关键字的使用: 1. 纯粹的函数调用(这是函数的通常用法,属于全局性

JavaScript 标识符,关键字和保留字

JavaScript 标识符,关键字和保留字 标识符 标识符(Identifier)就是名称的专业术语.JavaScript 标识符包括变量名.函数名.参数名和属性名. 合法的标识符应该注意以下强制规则: 第一个字符必须是字母.下划线(_)或美元符号($). 除了第一个字符外,其他位置可以使用 Unicode 字符.一般建议仅使用 ASCII 编码的字母,不建议使用双字节的字符. 不能与 JavaScript 关键字.保留字重名. 可以使用 Unicode 转义序列.例如,字符 a 可以使用"\

javascript之 this 关键字详解

不管学习什么知识,习惯于把自己所学习的知识列成一个list,会有助于我们理清思路,是一个很好的学习方法.强烈推荐. 以下篇幅有点长,希望读者耐心阅读. 以下内容会分为如下部分: 1.涵义 1.1:this涵义 1.2:this指向的可变性 2.使用场合 2.1:全局环境 2.2:构造函数 2.3:对象的方法 3.使用注意点 3.1:避免多层嵌套this 3.2:避免数组处理方法中的this 3.3:避免回调函数中的this 1.涵义 1.1:this涵义 在我写的一篇关于 构造函数与new关键字

深入了解JavaScript中的关键字

this是Javascript语言的一个关键字它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用,下面分四种情况,详细讨论this的用法,感兴趣的朋友可以了解下. this是Javascript语言的一个关键字. 它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用.比如, 复制代码代码如下: function test(){ this.x = 1; } 随着函数使用场合的不同,this的值会发生变化.但是有一个总的原则,那就是this指的是,调用函数的那个对象. 下面分四种情

JavaScript中var关键字的使用详解

作用 声明作用:如声明个变量. 语法 ? 1 var c = 1; 省略var 在javascript中,若省略var关键字而直接赋值,那么这个变量为全局变量,哪怕是在function里定义的. ? 1 2 3 4 5 6 7 8 <script type="text/javascript">   function Define() {     a = 2;   }   function Hello() {     alert(a);   } </script>

JavaScript中this关键字的理解

this是个什么鬼? this是JavaScript中的一个关键字,代表当前对象. this在那些情况下会指向谁?如下文. 一.调用全局变量(Global Variable) var x="我是全局变量呦"; function obj() { alert(this.x); } obj(); //我是全局变量呦 此时,this指向了全局变量x. 二.将this作为对象的方法来调用. function test() { alert(this.x); } var obj={}; obj.x=