引用javascript对象中的另一个字段

Fre*_*ind 6 javascript

我在javascript中有一个对象:

admins: {
    articles: {
        path: '/admins/articles',
        template: '/views/admins/articles.html',
        link: function() {
            return path;  // !!! how to reference the 'path'?
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我有很多像这样的对象,每个对象都有一个path字段和一个link函数.我想用领域pathlink,但我不能随便使用path.

我该怎么办?

nnn*_*nnn 6

您可以使用它this来引用该对象.标准的object.method()"点"语法将设置thisobjectmethod:

var someObj = {
    admins: {
        articles: {
            path: '/admins/articles',
            template: '/views/admins/articles.html',
            link: function() {
                return this.path; // !!! how to reference the 'path'?
            }
        }
    }
};

var returnedPath = someObj.admins.articles.link();
Run Code Online (Sandbox Code Playgroud)

演示:http://jsfiddle.net/2Pt7n/

(还有其他方法可以调用一个函数,this不会将其设置为适当的对象,但我希望它们不适用于此处 - 你并没有真正说明你是如何使用这些对象或调用函数的,但是如果不按照我展示的方式,请更新您的问题,我会相应地更新我的答案.)


Jef*_*ery 5

我只是指出你不想在这里使用 ES6 粗箭头,因为在这种情况下不会有this指针:

var someObj = {
    admins: {
        articles: {
            path: '/admins/articles',
            template: '/views/admins/articles.html',
            link: () => {
                return this.path; // 'this' is undefined
            }
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

someObj.admins.articles.link() === 未定义