JavaScript:如果使用特定值实例化现有对象,如何创建警报?

标签 javascript

(这只是出于个人好奇)

我想设置一个自动警报,每当内置 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/

相关文章:

JavaScript 打印代码无法正常工作

javascript - 使用 HTML5 的 canvas 绘制带有外描边的文本

javascript - 通过 Google API 的两个自动完成字段

javascript onDOMContentLoaded 不触发

javascript - 在 php 中重新创建 js 正则表达式匹配函数

javascript - 即使索引越界如何从数组中获取项目

php - 用php动态添加内容到div

javascript - Canvas new Image() 来自 Sprite

javascript - 如果启动后互联网可用,如何使用预加载器加载外部 JavaScript?

javascript - 为什么除非写在元素本身上,否则脚本不起作用?