zoukankan      html  css  js  c++  java
  • 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实现多继承
  • 相关阅读:
    数组的操作方法
    数组遍历的方法以及区别
    组件内的守卫
    路由守卫
    软件工程
    java web (j2ee)学习路线 —— 将青春交给命运
    团队作业(一)- 第五组
    软件工程
    软件工程-第二次作业
    java局部/成员/静态/实例变量
  • 原文地址:https://www.cnblogs.com/lgxlsm/p/5755247.html
Copyright © 2011-2022 走看看