对象创建JavaScript之间的区别

Cal*_*ton 0 javascript

这两个实例之间是否存在差异?它存在的区别是什么?

第一:

function MyClass() {
    var vm = this;

    vm.initialise = function () { console.log('initialised'); }

    return vm; //<-- here
}
Run Code Online (Sandbox Code Playgroud)

第二:

function MyClass() {
    var vm = this;

    vm.initialise = function () { console.log('initialised'); }

    //<-- here
}
Run Code Online (Sandbox Code Playgroud)

用法:

var newClass = new MyClass();
Run Code Online (Sandbox Code Playgroud)

Que*_*tin 6

使用new关键字时,this默认情况下将返回构造函数函数.

由于您的两个选项是"使用默认返回值"和"显式返回this",因此两种方法之间没有区别.


惯用的方法是没有明确的返回值,但也不vm是首先创建并this直接引用.