gpt4 book ai didi

javascript - 调用 'super' javascript 对象的函数

转载 作者:行者123 更新时间:2023-11-28 02:53:53 25 4
gpt4 key购买 nike

我有一个如下所示的对象结构/层次结构:


var obj = {

dimensions : {

x : 100,
y : 100,
w : 300,
h : 400,
cmp : function () {

return this.x + this.y;

}

},

definition : {

base : {

rect1 : {

// how do I get the value of dimensions.x ??
// or, for that matter, is there a way I could call dimensions.cmp()?


},

rect2 : {
// things go here
}

}

}

};

我的问题是:是否可以从dimension.definition.rect1函数中获取dimension.x的值?

最佳答案

当你想要这种东西时,停止使用对象文字:

var obj = new myConstructor();


function myConstructor(){
var dimensions = {

x : 100,
y : 100,
w : 300,
h : 400,
cmp : function () {

return this.x + this.y;

}

};

this.definition = {

base : {

rect1 : {

// how do I get the value of dimensions.x ??
// or, for that matter, is there a way I could call dimensions.cmp()?

//Dimensions is like a private var now - in scope for the object.

dimensions.cmp(); //that's how you'd call it.
},

rect2 : {
// things go here
}

}

}

}

尝试将从构造函数创建的 JS 对象视为忘记关闭和垃圾收集的简单函数。所有本地变量都会挂出,并且可以被您在构造函数内定义的公共(public)方法访问。外部定义的方法,无论是原型(prototype)还是只是附加在 .但是,将无法访问维度。当你这样做时,将 var 视为私有(private)的,这样。作为公众。但是函数内部定义的公共(public)方法可以访问 var 内容。

关于javascript - 调用 'super' javascript 对象的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3170526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com