Javascript对象声明

Javascript对象声明,javascript,object,Javascript,Object,我正在构建一个库,它是一个加载屏幕,允许我从各种不同的文档中调用Loader.Show()、Loader.Hide()或Loader.Step() 我已经构建了这个库,但是我不完全理解声明对象的各种方法。以下两种型号有什么区别,哪一种更好 //示例1 var Robot=(函数(){ var metal=“钢”; 返回{ killAllHumans:function(){ 警报(金属); } } })(); 机器人。杀死所有人类(); //例2 var非机器人={ 运行状态:“正常”, 运行:

我正在构建一个库,它是一个加载屏幕,允许我从各种不同的文档中调用Loader.Show()、Loader.Hide()或Loader.Step()

我已经构建了这个库,但是我不完全理解声明对象的各种方法。以下两种型号有什么区别,哪一种更好

//示例1
var Robot=(函数(){
var metal=“钢”;
返回{
killAllHumans:function(){
警报(金属);
}
}
})();
机器人。杀死所有人类();
//例2
var非机器人={
运行状态:“正常”,
运行:函数(){
警报(this.runState);
}
}

非robot.run()在第一个实例中,您将使用作为构造函数


在第二个实例中,您正在使用创建一个对象。

在第一个实例中,您将使用作为构造函数


在第二种方法中,您正在使用创建一个对象。

此方法创建一个私有上下文,您可以在其中添加自己的变量,并执行一些中间求值,甚至创建私有变量,例如
金属

var Robot = (function () {
    var metal = "Steel";

  return {
    killAllHumans: function() {
        alert(metal);
    }
  }
})();
另一方面,此版本创建的是一个对象文字:

var NonRobot = {
  runState: "Normal",
  run: function() {
    alert(this.runState);
  }
}
NonRobot.run();

runState
不是
NonRobot
的私有属性,它可以被外力操纵。

此方法创建一个私有上下文,您可以在其中添加自己的变量并执行一些中间求值,甚至创建私有变量,例如
metal

var Robot = (function () {
    var metal = "Steel";

  return {
    killAllHumans: function() {
        alert(metal);
    }
  }
})();
另一方面,此版本创建的是一个对象文字:

var NonRobot = {
  runState: "Normal",
  run: function() {
    alert(this.runState);
  }
}
NonRobot.run();

runState
不是
NonRobot
的私有属性,它可以被外力操纵。

没有构造函数就不能创建私有范围变量。没有构造函数就不能创建私有范围变量。