美文网首页
js给某个对象添加方法是添加到原型上还是直接挂到这个对象上好?

js给某个对象添加方法是添加到原型上还是直接挂到这个对象上好?

作者: 小李不小 | 来源:发表于2020-12-23 21:59 被阅读0次

new Object()创建对象是没有prototype的,你向utils.prototype添加方法是会报错的,
除非你把方法添加在Object.prototype上


image.png

prototype是函数的一个属性(每个函数都有一个prototype属性);
你得创建一个构造函数,他才有prototype;


image.png

原型方法可以这样添加:

UtilsClass.prototype.methodA = function(){console.log(1111)}

然后new一个 utils对象出来,你能在utils.proto上找到methodA

var utils = new UtilsClass();

使用原型增加方法,有利于内存的减少

function User(name){
    this.name=name; 
}
   console.dir(User)

//使用原型增加方法,有利于内存的减少
// User.prototype.show=function(){ console.log(this.name);console.log(this)}
User.prototype={
   constructor:User,
    show(){
        console.log(this.name)
        console.log(this.__proto__.constructor== User)
    }
}

var lisi=new User('李四')
console.log(lisi)
lisi.show();

相关文章

  • js给某个对象添加方法是添加到原型上还是直接挂到这个对象上好?

    new Object()创建对象是没有prototype的,你向utils.prototype添加方法是会报错的,...

  • JS原型对象

    1.什么是JS原型对象? prototype(原型对象)就是一个容器. 存放公共的方法给对象使用. 对象可以直接访...

  • 建立JS库文件

    建立库的方式 函数式 对象式 函数式 对象式 给JS添加连缀(链式)操作 给Base对象添加原型方法 1.添加CS...

  • $.extend()与$.fn.extend()的区别

    $.extend(obj)表示直接给$对象添加方法。 2.$.fn.extend(obj)表示给$的原型对象添加方...

  • 静态成员

    原型成员:原型对象上的属性或者是方法。实例成员:实例对象上的属性或者方法。静态成员:直接添加在构造函数上的属性和方...

  • ts中的class类(批量创建对象)

    和js对象相比,js对象需要通过prototype的方式将对象方法绑定到他的原型上,ts类中函数直接写在class...

  • react 对象动态添加属性 setState

    // js 对象动态添加 js对象动态添加 //总结,给对象动态添加变量属性的方法如下: //obj[变量]=变...

  • 面向对象(六)原型的使用方法

    原型的使用方法 ① 利用对象的动态特性给原型添加属性|方法[如果要添加的方法过多,则有大量重复代码]② 直接替换原...

  • 面向对象详解

    创建对象各种方法: js封装 JS封装只有两种状态,一种是公开的,一种是私有的。 构造函数方式与原型方式给对象添加...

  • js基础(三)

    js基础 原型链和原型对象 ... ... js没有继承原型对象prototype通常用来添加公共的属性或行为且只...

网友评论

      本文标题:js给某个对象添加方法是添加到原型上还是直接挂到这个对象上好?

      本文链接:https://www.haomeiwen.com/subject/bvyyektx.html