gpt4 book ai didi

Javascript:将方法添加到函数原型(prototype)

转载 作者:可可西里 更新时间:2023-11-01 01:42:10 24 4
gpt4 key购买 nike

有没有更短的写法:

var controller = function(){ 
/*--- constructor ---*/
};

controller.prototype.function1 = function(){
//Prototype method1
}

controller.prototype.function2 = function(){
//Prototype method2
}

controller.prototype.function3 = function(){
//Prototype method3
}

return controller

我正在使用 require.js。我想知道我是否可以避免 controller.prototype 代码重复。

最佳答案

带有辅助函数

即使这比给出的答案长,如果您必须这样做,多个地方可能有助于定义辅助方法:

function protomix(constructor, mix){
for(var i in mix)
if(mix.hasOwnProperty(i))
constructor.prototype[i]=mix[i];
}

var controller = function(){
//constructor
};

protomix(controller, {

function1 : function(){
//Prototype method1
},

function2: function(){
//Prototype method2
},

function3 : function(){
//Prototype method3
}
});

return controller;

使用 jQuery 的扩展方法

我想我应该提到 jQuery's extend method 因为它是在评论中提出的,而且通常比答案第一部分中定义的小辅助方法具有更多功能:

var controller = function(){ /* ctor */};
return $.extend(controller.prototype,{

function1 : function(){
//Prototype method1
},

function2: function(){
//Prototype method2
},

function3 : function(){
//Prototype method3
}
});

其他图书馆

其他库也内置了类似的功能,例如underscore's extend methodLo-Dash's assign method

关于Javascript:将方法添加到函数原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23020290/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com