javascript - Javascript 对象中的 var 与 this

标签 javascript node.js

我正在为 node.js 开发一个网络框架。这是代码;

function Router(request, response) {
        this.routes = {};

        var parse = require('url').parse;

        var path = parse(request.url).pathname,
            reqRoutes = this.routes[request.method],
            reqRoutesLen = reqRoutes.length;

        ..... // more code

};

我应该把所有的 var 都改成这个吗,像这样:

function Router(request, response) {
        this.routes = {};

        this.parse = require('url').parse;

        this.path = this.parse(request.url).pathname;
        this.reqRoutes = this.routes[request.method];
        this.reqRoutesLen = this.reqRoutes.length;

        ..... // more code

};

有什么意见吗?

最佳答案

当您希望属性在相关对象的生命周期内持续存在时,将属性添加到 this。对局部变量使用 var

edit — 正如 Bergi 在评论中指出的那样,用 var 声明的变量不会必然在函数调用返回时消失。它们现在并且仍然只能由声明它们的范围内的代码以及词法嵌套范围内的代码直接访问。

关于javascript - Javascript 对象中的 var 与 this,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4946625/

相关文章:

javascript - JavaScript求和函数不起作用

javascript - 运行 npm run pactTest 时 PACT.io : Getting Missing requests error,

javascript - 如何使用http 2实现cookie jar

node.js - NodeJS 需要在另一个模块中的模块

javascript - Highcharts:将值(value)最小的系列放在顶部

php - 无法将 php 变量写入 javascript

javascript - 10 天 Javascript - 第 3 天 : Arrays - HackerRank

mysql - 能够通过关联进行迁移,但无法通过关联进行查询(未找到关联)

node.js - 使用 Socket.io 连接到特定的服务器 IP

javascript - Google 脚本 doGet TypeError : Impossible to call method "getSheetByName" of null