相关疑难解决方法(0)

为什么这个函数包含在括号中,后跟括号?

我一直在javascript源码中看到这一点,但我从未真正找到使用此构造的真正原因.为什么需要这个?

(function() {

    //stuff

})();
Run Code Online (Sandbox Code Playgroud)

为什么这样写的?为什么不单独使用stuff而不是在函数中使用?

编辑:我知道这是定义一个匿名函数然后调用它,但为什么

javascript function

36
推荐指数
2
解决办法
4058
查看次数

考虑使用'new'关键字作为'static'的Javascript函数表达式是否正确

我只是想更深入地理解Javascript.

我创建了一个'类' gameData,我只想要一个,不需要构造函数,或者实例化.

所以我就这样创造了......

var gameData = new function () {

    //May need this later 
    this.init = function () { 
    };

    this.storageAvailable = function () {
        if (typeof (Storage) !== "undefined") {
            return true;
        }
        else {
            return false;
        }
    };
}
Run Code Online (Sandbox Code Playgroud)

意识到'new'关键字不允许它实例化并使其可用LIKE静态类将在C#中.

我是否正确地想到了这一点?静电?

javascript

25
推荐指数
3
解决办法
5915
查看次数

从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 ×3

closures ×1

function ×1