方法 1:(成功)
我有一个名为 Person 的对象构造函数,在这个对象构造函数中我使用了一个工作正常的 IFFI 函数表达式。在这个函数中,Person 的属性是可访问的!但是,
var Person = function (age) {
this.age = age;
this.retiredIn = (function (obj) {
return 65 - obj.age;
})(this);
};
var turna = new Person(22);
console.log(turna);
方法2:(我想要这个,不成功)
这是我想做的另一种方法,我想像这样从原型(prototype)插入retiredIn
函数,在这种情况下this
提到了 window
对象。我如何从那里访问 Person
对象?我尝试过将对象直接传递给 IFFI
但它不起作用。
var Person = function (age) {
this.age = age;
};
Person.prototype.retiredIn = (function () {
return 65 - this.age; //how can i access Person Object here
})();
var turna = new Person(22);
console.log(turna);
方法2.1:(我已经尝试过这样)
我已经直接通过了Person Contractor,但它不起作用!
var Person = function (age) {
this.age = age;
};
Person.prototype.retiredIn = (function (obj) {
return 65 - obj.age; //this is also showing NaN
})(Person);
var turna = new Person(22);
console.log(turna);
这也返回 NaN。 有没有办法像方法2一样进行这个操作?
最佳答案
您可以将该方法改为 getter:
var Person = function (age) {
this.age = age;
};
Object.defineProperty(Person.prototype, 'retiredIn', {
enumerable: true,
get() {
return 65 - this.age;
}
});
var turna = new Person(22);
console.log(turna);
关于javascript - 如何将 JavaScript 构造函数对象作为 IFFI 函数参数访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61541518/