用新语法class怎么实现prototype常量
发布于 6 年前 作者 ishanyang 2679 次浏览 来自 问答

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)

9 回复

class P { constructor(){this.a=“10”}}这样不就好了- -~

Object.defineProperty(Person.prototype, 'fingerNumber ', {
    value: '10',
    Writable: false
})

@linliny thanks a lot 是想要的答案

@koroshi 使用prototype是为了节省内存,比如实例化1000个人 正常人都是10个手指 就没必要单独拥有此属性,2楼是正解

typescript static property了解一下

楼上的static property并不是在原型链上的。 目前只能在类定义后对prototype修饰,或者继承一个已经修饰好的类。

get fingerNumber() { return 10; }

@noe132 虽然没在prototype上, 但也一样能达到效果啊, 静态成员也是只有一份. 当然唯一有些不同的是, 静态成员直接从类上去找, 而不是从对象上去找.

class Foo {
    static readonly bar = 10
}
回到顶部