有没有办法访问父对象?

时间:2018-05-30 07:28:02

标签: javascript node.js vue.js nuxt.js

我有一个如下代码,但似乎无法从data函数访问innerFn对象。我有什么方法可以做到这一点吗?

export default {
 data: {
    a: "a",
    b: "b"
 },
 fn: {
    innerFn: () => console.log(data.b)
 }
}

5 个答案:

答案 0 :(得分:0)

在你的js文件中

// name the file as follows 
var func = ()=>{
 console.log("triggered your function"); 
}


export default {
 data: {
    a: "a",
    b: "b"
 },
 fn: {
    val: 3,
    innerFn: func
 }
}

现在你可以调用函数

fn.innerFn();

答案 1 :(得分:0)

export default {
 data: {
    a: "a",
    b: "b"
 },
 fn: {
    innerFn: () => console.log(default.data.b)
 }

}

这可能适合你。

答案 2 :(得分:0)

为您的对象命名,然后您不必使用this来访问父属性。

const obj = {
 data: {
    a: "a",
    b: "b"
 },
 fn: {
    innerFn: () => console.log(obj.data.b)
 }
}

export default obj

答案 3 :(得分:0)

自我引用是this关键字的用途。

使用Object.create,您可以在作用域中定义对象属性,其中this关键字将引用父对象。

var obj1 = Object.create(null, {
  data: {
    value: {
      a: "a",
      b: "b"
    }
  },
  fn: {
    value: function fn() {
      console.log(this.data.b);
    }
  }
});
//TEST
console.log(obj1.data.a);
obj1.fn();
//Alternative with functions
function obj2() {}
obj2.data = {
  a: "a",
  b: "b"
};
obj2.fn = function fn() {
  console.log(this.data.b);
};
console.log(obj2.data.a);
obj2.fn();

答案 4 :(得分:0)

您需要使用<dx:ASPxGridView ID="gvEmp" ClientInstanceName="gvEmp" runat="server" Width="100%" KeyFieldName="Emp_id" AutoGenerateColumns="false"> <columns> <dx:GridViewDataTextColumn Caption="Gender" ShowInCustomizationForm="true" FieldName="Gender"> </dx:GridViewDataTextColumn> </columns> <editform> <dx:ASPxRadioButtonList ID="Gender1" AutoPostBack="false" runat="server" Value='<%# Eval("Gender") %>' ValueType="System.String"> <Items> <dx:ListEditItem Text="Male" Value="Male" Selected="true"/> <dx:ListEditItem Text="Female" Value="Female" /> </Items> </dx:ASPxRadioButtonList> </editform> </dx:ASPxGridView> <asp:ObjectDataSource ID="ObjectDSEmployee" runat="server" InsertMethod="InsertEmployee" TypeName="solution.file1.DataAccess.InspectionDataAccess"> <InsertParameters> <asp:Parameter Name="Gender" Type="String"/> </InsertParameters> </asp:ObjectDataSource> 关键字。

例如: -

this