Javascript 我应该在原型上还是在新创建的实例上调用构造函数方法?

Javascript 我应该在原型上还是在新创建的实例上调用构造函数方法?,javascript,Javascript,我创建了一个类var Emp=function(){}

我创建了一个类
var Emp=function(){}
Emp.prototype.function1 = function() { /* some definition */ };
Emp.prototype.function2 = function() { /* some definition */ };
// .. so on
什么会对绩效产生影响?哪种方法有效?为什么

案例1:如果我调用函数

Emp.prototype.function1(); 
案例2:如果我首先创建一个
Emp
实例

var empobj = new Emp();
empobj.function1(); // function calling  

如果使用案例1,则默认情况下,
上下文将指向
原型
对象,因此无法使用该对象访问
实例

例如:

var x = function(){ this.a = 10 };
x.prototype.y = function(){ console.log(this.a) };
x.prototype.y(); // This will print undefined since 
 //there is no properties other than y in the prototype of x.
同时,在案例2中,您可以访问
原型
对象以及
实例
值。这方面的一个示例代码是

var x = function(){ this.a = 10 };
x.prototype.y = function(){ console.log(this.a) };
var obj = new x();
obj.y(); // `y` can be accessed also. And it will output 10.

如果没有在实例上调用这些方法,它们应该是静态的,即在
Emp
中定义,而不是在
Emp.prototype
中定义:

function Emp() { /* ... */ }
Emp.function1 = function() { /* ... */ };
或ES6课程:

class Emp {
  static function1() { /* ... */ }
}
然后像这样调用函数:

Emp.function1(/* arguments */);

这与jQuery有什么关系?如果不创建实例,为什么要创建函数作为原型的属性?案例1毫无意义。如果函数没有在调用它们的实例上实际操作,那么案例2也是毫无意义的。案例2是我知道的goYup的方法。。但是我不知道确切的原因。。