如何访问构造函数的属性?

时间:2018-01-02 14:02:24

标签: javascript object

如何从color函数访问构造函数的setColor属性?

function Obj() {
  this.color = undefined;
}

Obj.prototype.setColor = () => {
  for (var k = 0, hex = "0123456789ABCDEF", max = hex.length, random, color = ""; k < 6;
    ++k, random = Math.floor(Math.random() * max), color += hex[random]);
  this.color = "#" + color; // Here i need to change
};

var ball = new Obj();
ball.setColor();
console.log(ball.color);

所以,我想运行setColor函数并更改构造函数color的{​​{1}}属性。

什么是最优雅和简单的方法,没有声明上下文的var并使用它?

1 个答案:

答案 0 :(得分:1)

构造函数没有color属性。

构造函数在构造它时将color属性添加到实例

您可以使用this.color访问实例上的属性(在原型函数内)。

&#13;
&#13;
function Obj() {
  this.color = "";
}

Obj.prototype.setColor = function() {
  for (var k = 0, hex = "0123456789ABCDEF", max = hex.length, random, color = ""; k < 6;
    ++k, random = Math.floor(Math.random() * max), color += hex[random]);
  this.color = "#" + color;
};

var instance = new Obj();
instance.setColor();
console.log(instance.color);
&#13;
&#13;
&#13;