function foo(){
this.a =2;
};

//assign a property
foo.color = 'red';

//assign a method
foo.sayHello = function(){`enter code here`
alert("hello!");
};
var foo1 = new foo();
console.log(foo.color); //red
console.log(foo1.color); //undefined


我有这样的职位。我可以做foo1.a并返回2。
但是,如果我正在执行foo1.color,则它是未定义的。
谁能告诉我如何通过实例访问在函数外部定义的属性和方法,以及在函数内部和外部定义属性之间的区别是什么?

最佳答案

foo.prototype.color = 'red'会将属性分配应用于new foo()的所有实例。

此属性将适用于所有实例,甚至包括已经存在的实例。

另一方面,this.a = 2仅适用于当前实例。

10-06 04:27
查看更多