1、()小括号运算符
平时最常用的就是()运算符来调用/执行一个函数
//无参函数fun1
function fun1() {
alert('我被调用了');
}
fun1()
//有参函数fun2
function fun2(param) {
alert(param);
}
fun2('我被调用了')
ECMAScript3后加入给Function加入了call和apply后,就有了下面两种
2、call
//无参函数fun1
function fun1() {
alert('我被调用了');
}
fun1.call(null);
//有参函数fun2
function fun2(param) {
alert(param);
}
fun2.call(null,'我被调用了')
3、apply
//无参函数fun1
function fun1() {
alert('我被调用了');
}
fun1.apply(null);
//有参函数fun2
function fun2(param) {
alert(param);
}
fun2.apply(null,['我被调用了'])
4、new
(不推荐使用这种方式哦
)
//无参函数fun1
function fun1() {
alert('我被调用了');
}
new fun1();
//有参函数fun2
function fun2(param) {
alert(param);
}
new fun2('我被调用了')
ok,从以上调用方式上看四种方式执行结果没有区别。但如果函数有返回值的话,用new方式调用时可能会让你有些失望。
//有返回值的函数fun
function fun() {
alert('我被调用了');
return "jack";
}
var c = new fun();
alert(c);//[object Object],为什么不是"jack"?
改成这样,
//有返回值的函数fun
function fun() {
alert('我被调用了');
return {name:'jack'};
}
var c = new fun();
alert(c.name);//jack,又正常返回了
好了,总结下:用new方式调用函数时。如果存在返回值,当返回值是javascript的内置类型(基本类型)如字符串(String),数字(Number),布尔(Boolean)等时,将不会返回该值;当返回值是对象,函数,数组等对象类型时,将返回该对象,函数,数组。
当返回值是内置类型(基本类型)时,new fun()到底返回什么呢?下一篇将讨论new方式调用的细节。
分享到:
相关推荐
JavaScript中的具名函数有多种调用方式,本文将总结其中的四种方法,主要包括普通函数调用、使用call方法、使用apply方法以及使用new关键字调用。 首先,最常见也是最直接的函数调用方式是使用圆括号()。这通常是在...
总结来说,这四种函数调用方式在很多情况下执行结果看起来没有区别,但是在函数返回值存在时,它们的行为表现会有所不同。特别是new关键字调用,它涉及到构造函数的创建和this的绑定,对于返回值的处理也会因返回值...
(3)没有引用的匿名函数调用1 代码如下:(function() {}()); (4)没有引用的匿名函数调用2 代码如下: (function() { })(); (5)没有引用的匿名函数调用3 代码如下: void function() { }(); 图1.1,图1.2表明...
回调函数在计算机编程中是一种设计模式,它允许你将一个函数作为参数传递给另一个函数,以便在特定条件或事件发生时被调用。在VB(Visual Basic)中,虽然不直接支持函数指针,但可以通过一些技巧实现类似的功能。本...
在JavaScript中,`map()`、`filter()`和`reduce()`等函数就是常见的高阶函数示例,它们可以用于操作数组,提供了一种抽象和复用代码的方式。 四、函数组合 函数组合是将两个或更多函数串联起来,形成一个新的函数。...
- `defer`后的函数调用会在函数返回之前执行,这有助于保持代码整洁,特别是在需要成对操作(如打开/关闭,连接/断开)的情况下。`defer`的调用顺序遵循“后进先出”(LIFO),类似于栈的性质。 9. **利用闭包改变...
函数还可以接受具名参数,这在处理复杂函数时特别有用,因为它允许调用者明确指定参数的值。例如,`fun greet(name: String, age: Int) { println("Hello, $name! You are $age years old.") }`,调用时可以写成`...
首先,VI会打开Bartender模板,然后通过API函数找到并连接到模板中的具名数据源。接着,通过写入操作,将LabVIEW中的变量或数组数据写入到对应的具名数据源中,从而更新标签内容。 5. **打印设置和多具名数据源**:...
函数表达式是另一种定义函数的方式,它包括匿名函数(没有函数名)和具名函数表达式。例如: ```javascript var anonymous = function() { console.log('I am anonymous'); }(); function named() { console.log...
此外,JavaScript的箭头函数(Arrow Function)提供了一种更简洁的函数定义方式,特别是在处理回调函数时。例如: ```javascript var sayHello = () => console.log('Hello, world!'); ``` 箭头函数有两点需要注意...
在JavaScript(简称js)编程中,函数是一等公民,这意味着函数可以像其他值一样被赋给变量、作为参数...在这种情况下,建议根据情况将匿名函数定义为具名函数,并抽取到独立的作用域中,以提高代码的可读性和可维护性。
匿名函数是 Python 中的一种特殊函数,顾名思义,它不需要具名定义,可以直接使用 lambda 关键字来定义。匿名函数的特点是可以直接传入函数中,而不需要事先定义函数名。这使得代码看起来更加简洁和灵活。 匿名函数...
具名函数表达式是在赋值时指定函数名,而匿名函数表达式则没有名称。函数表达式赋值给变量后,变量名实际上指向了函数对象。示例如下: ```javascript // 具名函数表达式 var greet = function greeting(greeting, ...
- **具名函数表达式**:虽然函数表达式通常匿名,但也可以为函数提供一个内部名称,如`function innerName() {...}`。这种情况下,`innerName`只在函数体内部可见,不能在外部访问。 总结来说,函数语句和函数...
_1则调用次近的一个不具名表达式。 以此类推。 3、计算命令 以$()为准,括号内的即为需要计算的式子。 4、结束命令 无论是只定义了表达式,或是直接调用$()进行计算,都以感叹号+回车作为结束符。
1. **初始化Bartender对象**:在C++中,你需要创建一个 Bartender 对象实例,通常通过CoCreateInstance函数实现。例如: ```cpp CoInitialize(NULL); IDispatch* pBarTender = NULL; HRESULT hr = ...
具名函数表达式除了定义一个函数之外,还可以在函数内部通过函数名调用自身,这在递归调用时特别有用。 当函数表达式出现在赋值表达式的一部分时,如 `var foo = function() {}`,或被包含在分组操作符中(即被一对...