gpt4 book ai didi

javascript - 我可以在对象原型(prototype)(方法)中定义属性吗?

转载 作者:行者123 更新时间:2023-11-28 05:56:03 24 4
gpt4 key购买 nike

问题第 1 部分:我已经创建了一个包含属性的对象构造函数,但我想知道是否可以在其中一个方法中定义该对象的另一个属性。例如:

var Player = function(p1) {
this.property1 = p1;
this.property2 = 0;
}

那么,我可以在方法中定义 this.property3 吗,例如:

Player.prototype.drawMethod = funtion() {
this.property3 = 1;
}

并使其易于访问,例如:

var obj = new Player(true);
if (obj.property3 ===1 && obj.property1 === 1) {
//code
} else {
obj.property3 = obj.property2;
}

问题第 2 部分:此外,属性是否会被接受为函数,我是否会使用以下方式调用它们:

this.func = function() {
//code
}
...
obj.func();

最佳答案

I am wondering if I could define another property of the object within one of it's methods

是的,你可以。

但请注意,这被认为是不好的样式,因为实例将具有哪些属性在单个点(构造函数)上是不可见的。此外,众所周知,引擎不会优化这种情况 - 它们为构造函数创建的对象的形状保留必要的空间,并且在实例化后更改它需要一些额外的工作。

Will properties be accepted as functions, and would I call them [like methods]?

是的。

关于javascript - 我可以在对象原型(prototype)(方法)中定义属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37668729/

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