(这只是出于个人好奇)
我想设置一个自动警报,每当内置 JavaScript 对象(意思是:我自己没有定义的对象)之一被实例化为特定值时。
这里是一个名为“Test”的非内置对象:
function Test(first, last) {
this.firstName = first;
this.lastName = last;
}
我尝试过的事情之一是向“Test”对象添加一个名为“checkName”的自执行函数,如下所示:
Test.prototype.checkName = function() {
var n = this.firstName;
if (n == "Mickey") {
alert("It's Mickey!!");
}
}();
但是按如下方式实例化它不会导致警报:
var a = new Test("Mickey", "Mouse");
是否可以扩充现有对象,以便在属性具有某些特定值时创建自动警报?
如果是的话,该怎么办?
最佳答案
JavaScript 无法读懂你的想法。您必须手动调用该方法。
并且它必须是一个方法,而不是立即调用的函数表达式。当您像这样调用它时,this
在草率模式下成为全局对象,在严格模式下成为未精炼的对象。因此 this.firstName
将是 window.firstName
或抛出异常。
function Test(first, last) {
this.firstName = first;
this.lastName = last;
this.checkName();
}
Test.prototype.checkName = function() {
var n = this.firstName;
if (n == "Mickey") {
alert("It's Mickey!!");
}
};
var a = new Test("Mickey", "Mouse");
关于JavaScript:如果使用特定值实例化现有对象,如何创建警报?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37089909/