我无法在Javascript中实现某些功能,并且无法解释它。我正在编写API,我希望开发人员能够编写以下代码:
dashboard('name1').createPanel('name2');
问题是我无法找到一种方法来创建一个名为“dashboard”的函数(它接受一个参数'name1'),同时还提供一个名为createPanel的原型。
答案 0 :(得分:2)
你有功能和对象。一个例子:
// A normal function
function dashboard(name) {
}
dashboard("name1");
如果您执行新操作,您还可以对此功能进行原型设计,您将需要使用类仪表板的对象。所以这个例子:
function dashboard( name ) {
// As class
this.name = name;
}
dashboard.Prototype.createPanel = function(name) {
this.name = name;
return this; // return the reference
}
var x = new dashboard("name1"); // create object
x.createPanel( "Name2" );
// x.name will be "Name2"
你想要的是链接功能。您需要做的就是返回要从中调用下一个函数的对象。如果每次链接该对象的函数时返回this
,如:
// extending the class with addProperty for chainging example
dashboard.Prototype.addProperty = function(key, value){
this[key] = value;
return this; // To enable chaining, return reference
}
var x = new dashboard("name1");
x.createPanel("Niels").addProperty("A", "B").addProperty("B", "C");
我们可以连续不断。您需要做的就是返回要继续链接的引用(通常是this
对象)。但可以是你想要的每一个对象。