gpt4 book ai didi

javascript - 在对象的原型(prototype)上使用自定义 getter 定义属性是否可以接受?

转载 作者:行者123 更新时间:2023-11-29 20:46:20 26 4
gpt4 key购买 nike

我定义了一个对象,该对象将在代码运行时实例化 1000 秒。对象的属性之一是计算值。我正在使用带有 Object.defineProperty 的自定义 getter。我见过的所有示例都在对象本身上定义了属性。

但是,如果属性是用函数派生的,那么在对象的原型(prototype)上定义属性是否会节省更多的内存?我一直找不到这样的例子。

下面的代码示例似乎有效,但这样做是否可以接受?它比在对象上定义属性更节省内存吗?

var Person=function(first,last)
{
this.firstName=first
this.lastName=last
}
Object.defineProperty(Person.prototype, "fullName", { get: function() { return `${this.firstName} ${this.lastName}`} })

var a =new Person("Jane","Doe")
console.log(a.fullName) //"Jane Doe"

最佳答案

Is doing it this way acceptable?

是的,完全是。使用 ES6 class 语法使得在原型(prototype)对象上定义访问器属性变得更加容易,这很常见。

class Person {
constructor(first, last) {
this.firstName = first;
this.lastName = last;
}
get fullName() {
return `${this.firstName} ${this.lastName}`;
}
}
var a = new Person("Jane", "Doe");
console.log(a.fullName) //"Jane Doe"

Is it more memory conservative than defining the property on the object?

Yes, definitely .

关于javascript - 在对象的原型(prototype)上使用自定义 getter 定义属性是否可以接受?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54427678/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com