Javascript原型,如何访问原型函数

时间:2016-08-04 16:54:23

标签: javascript function prototype

Javascript原型的整个概念的新功能可能会被混淆。

假设我有一个名为Widget的类,定义为:

var Widget = function (options) {
    // constructor code here
}

Widget.prototype.constructor = Widget;
Widget.prototype.myGreatFunction = function(){}

我是否可以致电Widget.myGreatFunction();或者是否需要致电Widget.prototype.myGreatFunction()?来运行强大功能?

2 个答案:

答案 0 :(得分:3)

如果使用构造函数创建实例,则可以使用该函数:

var w = new Widget();
w.myGreatFunction();

您也可以通过原型引用它来使用该功能:

Widget.prototype.myGreatFunction();

答案 1 :(得分:2)

这样做的理想方式是创建实例并使用原型函数。 然而,由于函数存储在Widget.prototype.myGreatFunction中,您绝对可以访问它。

原型中定义的函数是共享资源,这是以这种方式使用它的主要优势。



var Widget = function (options) {
    // constructor code here
}

Widget.prototype.constructor = Widget;
Widget.prototype.myGreatFunction = function(i){console.log('myGreatFunction', i);};

var a = new Widget();
a.myGreatFunction(1);


var b = new Widget();
b.myGreatFunction(2);