为什么我需要在紧接调用的函数表达式中包装代码?

时间:2015-09-16 06:47:36

标签: javascript node.js anonymous-function jslint strict

1)为什么我需要在(function(){})();中包含下面提到的代码,否则在JS linting期间抛出错误; 2)如果将"use strict";放在(function(){})();之上,我也会收到错误我认为将"use strict";放在页面的第一行。

请让我知道这两种行为。

我的工作代码 -

(function(){
"use strict";

// Constructing constructor function
// whose purpose is to create new 
// Person Objects
var Person = function(name) {
    this.name = name || "TestUser";
    this.hobbies = [];
};

Person.prototype.setHobby = function(hobby) {
    this.hobbies.push(hobby);
};

Person.prototype.getHobbies = function() {
    return this.hobbies;
};


exports.Person = Person;

var peter = new Person('peter');
peter.setHobby('Gambling');
peter.setHobby('Street Fighting');
peter.setHobby('Smoking');

peter.getHobbies();
})();

1 个答案:

答案 0 :(得分:4)

使用

/*jshint node: true */

位于文件顶部。即使删除IIFE,它也会通过带有绚丽色彩的jshint。

我不推荐jslint。你将用你的余生与它斗争并调整你的代码以使其闭嘴。