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

Can I define a property within an object prototype (method)?

问题第 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

是的,你可以。

但请注意,这被认为是一种糟糕的风格,因为它在一个点(构造函数)不可见实例将具有哪些属性。还知道引擎不会优化这种情况 - 它们为构造函数创建的对象的形状保留必要的 space,并且在实例化之后更改它需要一些额外的工作。

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

是的。