zoukankan      html  css  js  c++  java
  • JS的Call方法

    /**
        call的参数是一个对象的实例
        call的参数是一个函数,即一个对象
        创建一个基类对象作为子类原型的原型  共享基类prototype的方法
        
        为函数动态地增加属性、方法
        为函数prototype的属性添加方法
    */
        this.name = "window";
        function Class1(){
            this.name = "class1";     //设置对象名----若Call调用后在给实例化对象赋值!!
            this.showTxt = function(){alert(this.name)}
        } 
        Class1.prototype.say = function(){
            alert(this.name);
        }
        Class1.hello = function(){
            alert('Hello');
        }
        
        
        function Class2(){
            Class1.call(this);       //call对象冒充继承属性,方法
            this.name = "class2";    //由Class2创建实例后实例对象的name值,并不是Class2.name
        }
        Class2.prototype = new Class1();
        Class2.prototype.say = function(){
            alert("a");
        }
        
        var cls1 = new Class1();
        var cls2 = new Class2();
        
        
        //cls2.say();    
        //Class1.showTxt();             //Class1此时是一个function对象的引用
        //cls1.showTxt.call(cls2);    //实例对象的方法调用Call
        //cls1.showTxt.call(Class2);
        /**创建一个基类的对象作为子类原型的原型----->子类对象直接调用基类prototype的方法
         * 构造函数创建对象属性  -------> call对象冒充继承属性,方法
         * 原型链创建对象方法
         
    */
        for(var item in Class1){
            document.write(typeof item + ";" + item);
        }
  • 相关阅读:
    1022. 从根到叶的二进制数之和
    140. 单词拆分 II
    1640. 能否连接形成数组
    184. 部门工资最高的员工
    数据显示在视图中
    表单验证
    下拉框选中
    全选/全不选
    全选、全部选、反选、提交
    表单-放大缩小
  • 原文地址:https://www.cnblogs.com/xcai/p/2375449.html
Copyright © 2011-2022 走看看