我有以下代码:
$.extend($.fn.dataTable.defaults, {
"height": 500,
});
它工作正常,但是我想将此条件作为少数数据表的条件,所以我考虑将第二个参数作为返回对象的函数,如下所示:
$.extend($.fn.dataTable.defaults, function() {
// check datatable condtion and reurn
return new {
"height": 500,
}
});
我无法完成这项工作。如何根据数据表ID设置一些默认属性?
谢谢
答案 0 :(得分:0)
$.extend()
需要一个对象。该错误是因为它试图将您提供的函数引用用作对象,这显然不起作用。要解决此问题,请执行函数并提供对参数的响应。为此,请在函数定义后添加()
以立即执行。
还要注意,创建对象时不需要new
关键字。
var foo = {
width: 100,
height: 100
}
var output = $.extend(foo, function() {
return { height: 500 }
}()); // note the () here
console.log(output);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
但是,应该指出,这是一个非常人为的情况。如果可以在那时定义函数,则可以只创建一个对象,而避免使用丑陋的语法。
或者,如果该调用是对外部定义的函数的调用,则默认情况下将起作用:
var output = $.extend(foo, someExternalFunctionThatReturnsAnObject());