function Person () { }
Person.prototype.fingerNumber = 10
var xiaobai = new Person() var xiaohong = new Person() xiaohong.fingerNumber=11 // 11 console.log(xiaohong.fingerNumber) // 10 console.log(xiaobai.fingerNumber)
class P { constructor(){this.a=“10”}}这样不就好了- -~
Object.defineProperty(Person.prototype, 'fingerNumber ', {
value: '10',
Writable: false
})
@linliny thanks a lot 是想要的答案
@koroshi 使用prototype是为了节省内存,比如实例化1000个人 正常人都是10个手指 就没必要单独拥有此属性,2楼是正解
@ishanyang 学习到了
typescript static property了解一下
楼上的static property并不是在原型链上的。 目前只能在类定义后对prototype修饰,或者继承一个已经修饰好的类。
get fingerNumber() { return 10; }
@noe132 虽然没在prototype上, 但也一样能达到效果啊, 静态成员也是只有一份. 当然唯一有些不同的是, 静态成员直接从类上去找, 而不是从对象上去找.
class Foo {
static readonly bar = 10
}