This question already has answers here:
What is the difference between these two code samples?

(3个答案)


7年前关闭。




选项1:
<script>
var myObject = function(){
    this.iAm = 'an object';
    this.whatAmI = function(){
        alert('I am ' + this.iAm);
    };
   }
var myNewObject = new myObject();
myNewObject.whatAmI();
</script>

选项2:
<script>
function myObject(){
    this.iAm = 'an object';
    this.whatAmI = function(){
        alert('I am ' + this.iAm);
    };
};
var myNewObject = new myObject();
myNewObject.whatAmI();
</script>

问题:

这两个代码都可以工作。但是它们之间有什么区别?在OOP中进行js编码时,哪种方法更好?

最佳答案

第一个示例不会被吊起。在第二个示例中,该函数将被提升。

在您的示例中,使用选项1(未吊装):

如果您调用此代码:

var myNewObject = new myObject();
myNewObject.whatAmI();

在函数声明之前,您将收到一个错误。但是,在您的第二个示例中,该函数移到了封闭范围的顶部,已声明并可以使用(悬挂)。

http://www.sitepoint.com/back-to-basics-javascript-hoisting/

关于javascript - 这两种JS编码风格之间有什么区别? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17082741/

10-09 01:58