例子一:
var Test = function(){
this.name = "qudc";
return "qudc";
}
var a = Test();
var b = new Test();
例子二:
var Test = function(){
this.name = "qudc";
return function(){return "Test"};
}
var a = Test();
var b = new Test();
上面两种情况,b都是一个对象,对象的构造方法是不是Test 要看有没有返回对象,如果返回对象(例子二中),那么b.constructor 为 Function 。例子一中,b.constructor 为 Test。
执行方法Test,返回值的类型由方法中的return语句来决定。
只要new一个函数(构造函数),如果构造函数没有返回值或者返回值不是对象,那么默认返回this对象,即本对象。如果返回其他对象,那么结果即为别的对象。调用new一个函数,会创建一个新的对象,在构造函数内部 ,即被调用的函数中, this 指向新创建的对象 Object。
例子二中 a 和 b没有功能性上的区别。可以认为相似,但不相同。
分享到:
相关推荐
在探讨“函数之间调用同一个对象方法”的主题时,我们首先需要理解几个核心概念:函数、对象、方法以及事件监听器。这些概念是现代编程语言,尤其是面向对象编程语言中的基石,它们共同构建了复杂软件系统的逻辑框架...
这篇文章主要探讨了使用new关键字与直接调用函数这两种方式的区别,并通过具体代码示例来展示它们的不同行为和结果。 首先,我们需要了解在JavaScript中,函数可以返回不同类型的值。当一个函数被设计为构造函数...
使用 `new` 关键字调用函数时,会创建一个新的对象实例,并将这个新对象绑定到 `this`。构造函数主要用于初始化新创建的对象。 ```javascript function Person(name) { this.name = name; } let person = new ...
2. **函数的调用**:在程序中,你可以通过函数名和传递实际参数来调用函数。例如: ```cpp int result = add(3, 5); ``` 这将调用`add`函数,传入`3`和`5`,并将返回值赋给`result`。 3. **函数的嵌套调用**:一个...
最后一个构造函数调用了基类的构造函数`base(i)`来初始化`x`。 ```csharp class B : A { public int y; // 默认构造函数 public B() { y = 0; } // 带参数的构造函数 public B(int i) { y = i; } //...
1. **Lua与C++的交互接口**:Lua提供了一个名为`luaL_newstate`的API来创建一个新的Lua状态机,这是与C++交互的基础。然后,通过`luaL_openlibs`打开标准库,使Lua具备基本功能。 2. **注册C++函数到Lua**:使用`...
这里,`FormReportList`构造函数接收一个`FormPubs`类型的参数`f`,并将其实例化为成员变量`fp`,以便后续调用`FormPubs`中的方法或属性。 #### 2. 实现窗体间的事件触发 为了让`FormPubs`中的方法能够在`...
1、用FindWindow("类名(可以是派生类)","窗口标题")或GetParent(),二者均能返回父窗口句柄,并能直接使用其成员函数。但是此法只能调用CWnd类里的成员函数,而不能调用自己创建的派生类中的函数。 2、在子窗口的...
当我们使用`new`关键字时,通常会伴随着一个类的构造函数调用,以便对新对象进行初始化。 ```java // Java 示例 Person person = new Person("John", 30); // 堆内存中创建Person对象 ``` 在这个例子中,`new`...
在JavaScript中,判断函数是通过new运算符创建实例的方式调用,还是通过普通函数调用,通常涉及到几种不同的方法和它们的局限性。下面将详细介绍每种判断方式及其适用场景和潜在问题。 首先,为了区分new调用和普通...
假设我们有一个Python文件,名为`addition.py`,其中包含一个名为`add`的函数,用于执行加法运算: ```python def add(a, b): return a + b ``` 在Java中,我们可以使用Jython的API来加载这个Python文件,并调用`...
本文旨在探讨C++中的虚函数调用机制,通过分析一个简单的示例程序,解释虚函数如何在运行时被正确地调用,并深入剖析这一过程背后的原理。 #### C++中的虚函数调用机制 C++中的虚函数调用机制主要依赖于虚拟表...
3. **构造器调用模式**:通过 `new` 关键字调用函数,如 `new Func()`. 这会创建一个新对象,其原型链指向函数的原型(`Func.prototype`),并且 `this` 指向新创建的对象。 4. **apply/call调用模式**:这两个方法...
一般形式的函数调用,是常见的函数调用方式,一般用于“没有返回值的函数”。 语法: 函数名称([参数1, 参数2, ……]) [参数1,参数2…]是可选的,用于表示实参列表,其值可以是零个、一个或多个。 5.2.2 函数的...
总结一下,QML和C++之间的函数调用主要涉及以下几个步骤: 1. 在C++中创建一个继承自`QObject`的类,并使用`Q_OBJECT`和`Q_INVOKABLE`标记需要在QML中调用的函数。 2. 注册C++对象到QML引擎,并设置为QML上下文的...
在C#编程中,类与类之间的函数调用是实现对象间交互的重要方式。本示例探讨了三种主要的函数调用方式:子类调用父类函数、父类调用子类函数以及子类之间的函数调用。下面将详细阐述这些概念。 1. 子类调用父类函数...
首先,理解C#的基础:在C#中,函数参数在编译时就已经确定,因此在函数调用时直接通过位置或命名传递。然而,要动态获取参数名称和值,我们需要利用反射(Reflection)和表达式树(Expression Trees)这两个强大的...
- 在QT中定义一个槽函数,例如`handleJsCall`,然后使用`QWebChannel`来创建一个通信通道,让JavaScript可以调用这个槽函数。 - 首先,创建一个继承自`QObject`的C++类,暴露槽函数给JavaScript。比如,创建一个`...
本篇文章将深入探讨如何在C#中调用一个C++DLL,特别是当DLL函数参数中包含指针时的处理方法。 首先,理解C#与C++之间的互操作性是关键。.NET框架提供了一个名为P/Invoke(Platform Invoke)的机制,允许C#代码调用...