如何确定 JavaScript 对象是否是事件?
让我们首先了解什么是 JavaScript 对象和 JavaScript 事件。JavaScript 中的对象是具有属性和类型的不同实体。例如,将其与碗进行对比。碗是具有一些属性的对象。属性包括设计、颜色、材质、重量等。与此类似,JavaScript 对象也具有一些属性。
称为 JavaScript 对象 的独立实体可以将许多值存储为其属性和方法。
虽然方法代表函数,但对象属性维护文字值。可以使用对象 文字 或对象 函数 object() { [本机代码] } 语法来创建对象。有 6 种不同类型的对象。它们是对象、数组、数字、日期、函数和字符串。
可以使用事件编写响应某些情况的 JavaScript 代码。事件的一些实例是,用户点击鼠标、网站加载、onclick、onload、on change 等,都是 JavaScript 事件的一些示例。
现在我们可以学习如何确定 JavaScript 对象是否是事件。
使用 target 属性
在本节中,我们将看到如何借助事件的 target 属性确定 JavaScript 对象是否是事件。
语法
function someAction(obj) { if (obj.target) { //this JavaScript object is an event } }
在上述语法中,我们将对象作为函数参数传递,以检查它是否是事件。
算法
步骤 1 - 将点击事件附加到按钮
步骤 2 - 将字符串作为对象传递给类型识别函数
步骤 3 - 使用目标属性,在两种情况下显示适当的输出。
示例
在此示例中,我们创建了空的 Dom 来显示输出。创建了一个按钮,用于检查单击事件上的事件目标。首先,使用事件处理程序将单击操作附加到按钮。接下来,将字符串作为对象传递。当发生单击操作时,我们得到输出"传递的对象是一个事件"。当执行字符串的情况时,我们得到输出"传递的对象不是事件"。
<html> <body> <h2> Using the <i> target </i> Property </h2> <p id="idStrDom"> </p> <button id="idButton"> Click Me </button> <p id="idNullDom"> </p> <script> document.getElementById("idButton").addEventListener("click", doAction); doAction("not event", true); function doAction(obj, isStr) { var isEvent = false; if (obj.target) isEvent = true; var NullDom; if (isStr) { NullDom = document.getElementById("idStrDom"); } else { NullDom = document.getElementById("idNullDom"); } NullDom.innerHTML = "the passed object OBJ is " + (isEvent ? "an event": "not an event"); } </script> </body> </html>
使用 instanceof 属性
在本节中,我们将了解如何借助事件的 instanceof 属性确定 JavaScript 对象是否为事件。
语法
var obj = new Event('click'); obj instanceof Event; // true 表示此对象为事件
此处,我们使用 new Event() 构造函数创建事件对象,并使用 instanceof 运算符检查它是否为事件。
示例
在此示例中,我们创建了空 Dom 以进行输出显示。使用 new Event() 方法,click 事件作为对象传递。此处,使用 instanceof 属性,我们确定此对象为事件。下一个案例传递一个字符串值,该值输出该对象不是事件。
<html> <body> <h2> Using the <i> instanceof </i> property </h2> <p id="idNullDom"> </p> <p id="idStrDom"> </p> <script> doAction("event"); doAction("not event"); function doAction(type) { var obj; if (type == "event") obj = new Event('click'); else obj = "hello"; var isEvent = obj instanceof Event; // true means this object is an event var varNullDom; if (type == "event") { varNullDom = document.getElementById("idNullDom"); } else { varNullDom = document.getElementById("idStrDom"); } varNullDom.innerHTML = "the passed object OBJ is " + (isEvent ? "an event" : "not an event"); } </script> </body> </html>
在本教程中,我们学习了如何确定 JavaScript 对象是否为事件。第一个属性用作事件的目标。这是一种通过监听事件监听器工作的简单方法。
第二种方法是使用 new Event() 时的 instanceof 属性。
这两种方法都很容易理解,并且可以识别对象是否为事件。