码迷,mamicode.com
首页 > 其他好文 > 详细

怎样修改原型对象prototype

时间:2019-10-14 16:19:48      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:function   ide   over   imei   构造   修改   cto   ror   let   

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

 

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

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"

 

怎样修改原型对象prototype

标签:function   ide   over   imei   构造   修改   cto   ror   let   

原文地址:https://www.cnblogs.com/aisowe/p/11672032.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!