0

我正要尝试在 js 中做一些 OOP 代码,没什么特别想看看它是如何工作的。我在网上阅读了一些文档,但是代码在 jslint 中给了我错误。我从未使用过 jslint,所以我不确定错误消息的重要性,希望你们能提供帮助。

function mainClass(arg1, arg2) {

"use strict";

this.property1 = arg1;
this.property2 = arg2;

this.printClass = function printClass() {

    return this.property1 + " " + this.property2;

}}

那是一个足够简单的 js 类,但我得到了一些错误,错误是:

ln5 严格违反。this.property1 = arg1;

ln6 严格违反。this.property2 = arg2;

ln8 严格违反。this.printClass = 函数 printClass() {

ln12 应为 ';' 而是看到了'}'。

因此,显然错误是我在全球范围内使用了它,正如我在其他一些帖子中所读到的那样,但我不知道我应该如何解决它来修复它。

这不是编写js类的正确方法吗?

更新!

var mainClass = function(arg1, arg2) {
'use strict';

this.property1 = arg1;
this.property2 = arg2;

this.printClass = function printClass() {
    return this.property1 + ' ' + this.property2;
};};

我将代码更新为上面的代码,它就像其他代码一样工作,我应该注意声明这样的类和上面的方式有什么不同吗?这也验证了。

4

1 回答 1

1

是的,JSHint对东西有点严格。但是您的代码很好,当您正确缩进时它会完美验证。此外,您忘记了;一个函数声明末尾的 a :

var foo = function (arg1, arg2) {
    'use strict';

    this.property1 = arg1;
    this.property2 = arg2;

    this.printClass = function printClass() {
        return this.property1 + ' ' + this.property2;
    };
};

或者使用validthis标志,当代码在严格模式下运行并且您在非构造函数中使用它时,它会抑制有关可能的严格违规的警告。

于 2013-08-08T22:19:14.893 回答