相关疑难解决方法(0)

JavaScript中的'new'关键字是什么?

newJavaScript中的关键字在第一次遇到时会非常混乱,因为人们倾向于认为JavaScript不是面向对象的编程语言.

  • 它是什么?
  • 它解决了什么问题?
  • 什么时候适当,什么时候不适合?

javascript new-operator

1684
推荐指数
12
解决办法
25万
查看次数

从JS闭包创建对象:我应该使用"new"关键字吗?

我用这个样本回答了一个关于闭包的问题:

function Constructor() {
    var privateProperty = 'private';
    var privateMethod = function(){
        alert('called from public method');
    };
    return {
        publicProperty: 'im public',
        publicMethod: function(){
            alert('called from public method');
        },
        getter: privateMethod
    }
}

var myObj = new Constructor();

//public
var pubProp = myObj.publicProperty;
myObj.publicMethod();
myObj.getter();

//private - will cause errors
myObj.privateProperty
myObj.privateMethod
Run Code Online (Sandbox Code Playgroud)

一位用户评论我的回答说:

此外,如果您的函数显式返回一个对象,那么使用new调用它并不是一个好习惯,因为这会产生误导 - 如果使用new,您希望结果是Constructor的一个实例

我通常使用new创建对象.但为什么这不是一个好的做法?似乎使用new而不使用new返回相同的东西.从闭包创建对象的正确方法是什么?

javascript closures

13
推荐指数
1
解决办法
3330
查看次数

标签 统计

javascript ×2

closures ×1

new-operator ×1