nodejs 클래스가module에서 내보내는 여러 가지 방법

12456 단어 프로그래밍 노트
여기에는 모듈에서 내보낼 때의 클래스 내부 공유 변수와 방법의 쓰기를 특별히 가리킨다.
방법 1:
lib/test.js
var kuohao = {
    "v1" : "i am v1",
    "f2" : function () {
      this.f1()
    },
    "f1" : function () {
        console.log("show in f1: " + this.v1)
    }
}
exports = module.exports = kuohao;

test.js
var testlib = require("./lib/test")
testlib.f2()

변형:
var kuohao = {
    "v1" : "i am v1",
    "f2" : function () {
        kuohao.f1()
    },
    "f1" : function () {
        console.log("show in f1: " + kuohao.v1)
    }
}
exports = module.exports = kuohao;

방법 2:
lib/test.js
var kuohao = function () {
    this.v1 = "i am v1";
    this.f1 = function () {
        console.log("show in f1: " + this.v1)
    }
    this.f2 = function () {
        this.f1()
    }
}
exports = module.exports = new kuohao;

test.js
var testlib = require("./lib/test")
testlib.f2()

이상, 내보낼 때 new를 추가하지 않으면 (exports =module.exports =kuohao;)
그럼 사용할 때 다시 new를 해야 돼요.
test.js
var testlib = require("./lib/test")
var testlib = new testlib()
testlib.f2()

변종도 할 수 있어요.
lib/test.js
exports = module.exports = new function () {
    this.v1 = "i am v1";
    this.f1 = function () {
        console.log("show in f1: " + this.v1)
    }
    this.f2 = function () {
        this.f1()
    }
}

방법 3:
lib/test.js
function Kuohao() {}
Kuohao.prototype.v1 = "i am v1";
Kuohao.prototype.f1 = function () {
    console.log("show in f1: " + this.v1)
}
Kuohao.prototype.f2 = function () {
    this.f1()
}
exports = module.exports = new Kuohao();

test.js
var testlib = require("./lib/test")
testlib.f2()

상기 방법의 변수는 방식을 살짝 바꾸십시오.
lib/test.js
function Kuohao() {
    this.v1 = "i am v1";
}
Kuohao.prototype.f1 = function () {
    console.log("show in f1: " + this.v1)
}
Kuohao.prototype.f2 = function () {
    this.f1()
}
exports = module.exports = new Kuohao();

방법
lib/test.js
function Kuohao() {
    var kuohao = new Object();
    kuohao.v1 = "i am v1";
    kuohao.f1 = function () {
        console.log("show in f1: " + this.v1)
    }
    kuohao.f2 = function () {
        this.f1()
    }
    return kuohao;
}
exports = module.exports = Kuohao();

test.js
var testlib = require("./lib/test")
testlib.f2()

조금만 변종하면 효과가 똑같아요lib/test.js
function Kuohao() {
    var kuohao = function () {};
    kuohao.v1 = "i am v1";
    kuohao.f1 = function () {
        console.log("show in f1: " + this.v1)
    }
    kuohao.f2 = function () {
        this.f1()
    }
    return kuohao;
}
exports = module.exports = Kuohao();

매개 변수 전달
lib/test.js
function Kuohao(_arg) {
    console.log(_arg)
    var kuohao = new Object();
    kuohao.v1 = "i am v1";
    kuohao.f1 = function () {
        console.log("show in f1: " + this.v1)
    }
    kuohao.f2 = function () {
        this.f1()
    }
    return kuohao;
}
exports = module.exports = Kuohao;

test.js
var testlib = require("./lib/test")("i am arg")
testlib.f2()

방법 5lib/test.js
var Kuohao = function () {
    function Kuohao() {
        this.v1 = "i am v1";
    }
    Kuohao.prototype.f1 = function f1() {
        console.log("show in f1: " + this.v1)
    }
    Kuohao.prototype.f2 = function f2() {
        this.f1()
    }
    return Kuohao;
}();
exports = module.exports = Kuohao;

test.js
var testlib = require("./lib/test")
var obj = new testlib();
obj.f2();

방법
lib/test.js
var options = {
    f1 : function () {
        console.log("show in f1: " + this.v1)
    },
    f2 : function () {
        this.f1()
    }
};
function Kuohao() {
    this.v1 = "i am v1";
}
Kuohao.prototype = options;
exports = module.exports = new Kuohao();

test.js
var testlib = require("./lib/test")
testlib.f2();

방법
lib/test.js
var v1 = "i am v1";
exports.f1 = function() {
    console.log("show in f1: " + v1)
};
function f2() {
    exports.f1()
}
exports.f2 = f2;

test.js
var testlib = require("./lib/test")
testlib.f2();

좋은 웹페이지 즐겨찾기