PHP函数的自定义参数是如何在jquery中实现的
how the custom argument of PHP function is implemented in jquery
我们用PHP编写一个自定义函数的参数,如下所示:
function something ($arg = "")
{
// then do something
}
在jquery中应该如何做到这一点?
这似乎不起作用:
function jq_something ($arg = "")
{
}
在函数内检查:
function jq_something($arg) {
if ($arg === undefined) $arg = ""; // your default value
}
JavaScript中没有默认值语法。(顺便说一句,这与jQuery完全无关。)
我认为jquery在调用函数时丢失arg的情况下会抛出错误——Mostafa Talebi 1分钟前
您一直混淆jQuery和JavaScript。jQuery只是一个库!jQuery没有定义特殊的语法;它不是一种单独的编程语言。无论如何,不,在JavaScript中,你可以传递或多或少的参数,这很好:
function test(a) {
console.log(a);
}
test("test"); // logs "test"
test(); // logs undefined
test(1, 2, 3); // logs 1
当然,如果您愿意,当参数数量错误时,可以抛出错误:
function threeArgs(a, b, c) {
if (arguments.length !== threeArgs.length) throw new Error("Incorrect number of arguments");
// ...
}
这不是jQuery的限制,但完全没有在JavaScript中实现(也许ES6除外)。
当前的做法是检查未定义的或一些意外的错误值,然后修改为默认值。
function foo(x) {
if (undefined === x) x = 0;
return x;
}
foo('a'); // "a"
foo(1); // 1
foo(); // 0
foo(null); // null
foo(undefined); // 0
试试这样的
function jq_something (arg) {
arg = typeof arg !== 'undefined' ? arg : 'default_value';
}
我认为,以下方法(如我的示例代码所示)可以帮助您:
function say_smth(options) {
var defaults = {"message":"hi", "user" : "Anonymous"};
if(undefined===options)
options = {}
for (key in defaults)
if(undefined===options[key]) options[key]=defaults[key];
alert (options['message'] + ', ' + options['user']);
}
say_smth(); //hi, Anonymous
say_smth({"user":"Peter"}); //hi, Peter
say_smth({"message":"nice hat"}); //nice hat, Anonymous
say_smth({"message":"go fish", "user":"Jack"});//go fish, Jack
JavaScript目前不支持此功能。尽管你可以使用下一种方法:
-
检查参数是否通过:
function myFunc(name, gender) { name = name || 'unnamed'; gender = gender || 'male'; }
-
使用
options
对象参数(用于更复杂的代码),并为未传递的选项预设默认值。var Person, mary; Person = function(name, options) { this.name = name; this.setOptions(options || {}); }; Person.defaultOptions = { age: 30, gender: 'male' }; Person.prototype.setOptions = function(options) { this.options = $.extend({}, Person.defaultOptions, options); }; mary = new Person('Mary', {gender: 'female'}); console.log(mary);
Fiddle
相关文章:
- 如何从ASP.NET并将其发送到jQuery?(实现FullCalendar)
- 如何使用ajax和JQuery实现Dependent下拉zend框架1.12表单
- jQuery-实现唯一的连续排名
- 如何使用jQuery实现导航栏
- 尝试使用 JChartFX 和 JQUERY 实现图表
- 如何使用jquery实现垂直图像滑块,其中在显示新图像之前,它将关闭并使用新图像打开
- 有没有像tungle.me这样的日历调度程序的javascript/jquery实现
- 通过jQuery实现图像无限循环
- 通过数据属性和jquery实现可重用
- 如何使用javascript/jquery实现用户输入的生活风格
- 'Ctrl+B'使用inputtype=按钮通过jQuery实现功能
- 当特定框悬停时,如何将jQuery实现到类的特定类
- 如何用Javascript、jQuery实现CORS
- 使用HTML/CSS/JQuery实现一个所见即所得的报表生成器
- jquery实现的请等待对话框- safari特有的问题
- 在jQuery中添加一个简单的Java 'class'表示jQuery实现的实例
- 如何用jquery实现这一点
- 如何使用jQuery实现“夜间模式”没有在每个页面加载时闪烁的白色
- 使用JavaScript或jquery实现箭头键
- safari中日期[dd/mm/yyyy]无效?如何使用jquery实现日/月/年格式的显示