js 的function为什么可以添加属性

js 的function为什么可以添加属性

(1)
function person(){
    this.name = 'Tom';
}
(2)
function person(){}
person.name = 'Tom';
(3)
function person(){}
person.prototype.name = 'Tom'

1是公有属性
this.a 只有通过 new person()访问
2是静态属性 (和C#中的类 的静态属性一样)
person.b 只有通过 person.b 访问
3是原型共享属性 (前两个的升级版 )
可以通过 person.prototype.c 或者 new person().proto.c 或者 new person().c 访问

通过 console.dir(person) 可以看到

person.prototype===new person().__proto__ 结果为true

在 console.log(new person()) 只能看到 a和c

https://www.bilibili.com/video/BV1Zy4y1K7SH?p=59&vd_source=391dd83368573323f85dea6abfeb0d88

posted @ 2023-03-17 14:36  InMyHeart,OnlyYou  阅读(33)  评论(0)    收藏  举报