在不创建新实例的情况下访问构造函数的属性

如果没有首先创建实例,是否可以访问构造函数对象/函数的属性?

例如,假设我有这个构造函数:

function Cat() {
  this.legs = 4;
};

而现在 - 没有创建一个新的猫实例 - 我想知道构造函数中legs价值。 这可能吗?

(而且我并不是在寻找像下面这样的东西: var legs = new Cat().legs 。(比方说,由于某种原因,新Cat的实例化是超级CPU。))


有这样的事情吗?

function Cat() {
  this.legs = 4;
}

var obj = {};
Cat.call(obj);
console.log(obj.legs); // 4

这更加昂贵:

console.log(parseInt(Cat.toString().match(/this.legss*=s*(d+)/)[1]));

在你的场景中, leg是一个实例变量,这意味着需要一个对象实例才能访问它。

你可以将它变成一个伪class variable (参见Javascript中的类变量),那么你应该可以在不调用函数的情况下访问它(实例化对象)。

链接地址: http://www.djcxy.com/p/84579.html

上一篇: Accessing property of constructor without creating new instance

下一篇: Open and save documents on local intranet site from shared folder