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

时间:2016-06-07 00:23:44

标签: javascript oop properties processing.js

问题第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();

1 个答案:

答案 0 :(得分:0)

  

我想知道我是否可以在其中一个方法中定义该对象的另一个属性

是的,你可以。

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

  

属性是否会被接受为函数,我会称之为[类似方法]吗?