假设我有这样的事情:
network = {
post: function(t) {
console.log(t); }
protocol: {
init: function() {
/* network.post("init") */ } } }
注释部分,我如何允许network.protocol.init函数通过某种相对链接调用network.post? network.protocol如何找到网络变量?
感谢。 :)
答案 0 :(得分:1)
这是对象文字语法的限制;你就是做不到。
您最好的选择是通过network
对象上的属性引用protocol
,并在通过对象文字语法声明对象后立即添加它;
network = {
post: function(t) {
console.log(t); }
protocol: {
init: function() {
this.network.post("init") } } }
network.protocol.network = network;
...这是有效的,因为network
属性的存在被推迟到执行init
本身。