• 怎样修改原型对象prototype


    修改原型对象的方法分为两种情况, 一种是对原型对象的属性方法做增删改, 一种改变原型对象的指向.

    第一种: 对原型对象的属性/方法做增删改

    function Person(name){
        this.name = name;
    }
    
    var lilei = new Person("Lilei");
    
    //
    Person.prototype.getName = function (){
        return this.name;
    }
    lilei.getName(); // "Lilei"
    
    //
    Person.prototype.getName = function(){
        return this.name.toUpperCase();
    }
    lilei.getName(); // "LILEI"
    
    //
    delete Person.prototype.getName; // true
    lilei.getName(); // Error

    第二种: 改变原型对象的指向

    以下代码中, 我们如果要整个改变原型对象的指向, 那目标对象中必须要有一个constructor属性, 值为这个原型对象关联的构造函数. 此外, 这个改变不能对已生产的实例对象作更改, 比如下面的lilei, 我们在修改以后调用lilei.sayHello()还是会报错.

    function Person(name){
        this.name = name;
    }
    
    var lilei = new Person("Lilei");
    
    var overridePrototype = {
        constructor: Person,
        sayHello: function(){
            return "Hello, I'm " + this.name;
        }
    };
    
    // lilei.sayHello(); // Error
    
    Person.prototype = overridePrototype ;
    // lilei.sayHello(); // Error
    
    var hanmeimei = new Person("Hanmeimei");
    hanmeimei.sayHello(); // "Hello, I'm Hanmeimei"
  • 相关阅读:
    位集合
    多线程进行http请求
    mysql--测试前缀索引能否用于order by 或者 group by
    用mysql触发器实现log记录
    源码安装mysql
    C语言:void指针
    C语言:枚举类型
    C语言:结构体与数组
    C语言:联合变量
    Linux 基础入门
  • 原文地址:https://www.cnblogs.com/aisowe/p/11672032.html
Copyright © 2020-2023  润新知