在这里我感到困惑,我创建了一个名为obj
的对象,obj有一个键first
。
现在,当我在下面解释程序时,一个first
键具有一个键second
hello()
并在控制台hello
上提供输出。而不访问obj.first.second
之类的对象属性。
我不明白发生了什么事
或者有什么方法可以防止在访问对象属性之前调用函数。
var obj ={
first:{
second:hello("hello")
}
}
//obj.first.second
function hello(url){
console.log(url)
}
任何帮助将不胜感激
答案 0 :(得分:2)
似乎您正在寻找一个吸气剂,当您访问该属性时该吸气剂将被执行:
var obj = {
first: {
get second() { hello("hello") }
}
};
function hello(url) {
console.log(url);
}
// Now here hello gets called:
obj.first.second
答案 1 :(得分:0)
您还可以使用getter与类一起定义对象。
这是一个例子
class Rectangle {
constructor(height, width) {
this.height = height;
this.width = width;
}
// Getter
get area() {
return this.calcArea();
}
// Method
calcArea() {
return this.height * this.width;
}
}
const square = new Rectangle(10, 10);
console.log(square.area);