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);
        }
  • 相关阅读:
    GC(垃圾分代收集)
    排序算法总结
    Redis中的数据结构
    事务的隔离性(续篇)
    手写Spring mvc框架 (二)
    MySql日志与事务的隔离级别
    手写Spring mvc框架 (一)
    IO流
    随笔三(Ajax)
    关于博主noble_
  • 原文地址:https://www.cnblogs.com/xcai/p/2375449.html
Copyright © 2011-2022 走看看