在 ECMAScript 2016 中,Array.prototype @@toStringTag 方法被引入。这个方法返回一个字符串,表示对象的类型标签。在本文中,我们将探讨这个方法的使用及其例子。
什么是 @@toStringTag 方法?
@@toStringTag 方法是一个内置的 Symbol 值,它是一个对象的属性,用来标识对象的类型。在 ES6 中,Symbol.toStringTag 属性被添加到了所有内置对象的原型上,用来标识该对象的类型。例如,Array.prototype @@toStringTag 方法返回的是字符串 "Array"。
如何使用 @@toStringTag 方法?
在使用 @@toStringTag 方法时,我们可以通过以下代码获取对象的类型标签:
Object.prototype.toString.call(obj);
其中,obj 是要获取类型标签的对象。这个方法返回的是一个字符串,表示对象的类型标签。
在 Array.prototype @@toStringTag 方法中,我们可以使用以下代码获取数组的类型标签:
Object.prototype.toString.call([]);
这个方法返回的是字符串 "Array",表示该对象是一个数组。
@@toStringTag 方法的例子
下面我们来看一些 @@toStringTag 方法的例子。
例子 1:返回数组的类型标签
const arr = []; console.log(Object.prototype.toString.call(arr)); // "[object Array]" console.log(arr[Symbol.toStringTag]); // "Array"
在这个例子中,我们定义了一个空数组 arr。我们使用 Object.prototype.toString.call() 方法获取该数组的类型标签,并将其打印到控制台上。该方法返回的是字符串 "[object Array]",表示该对象是一个数组。然后,我们使用 arr[Symbol.toStringTag] 获取该数组的类型标签,并将其打印到控制台上。该方法返回的是字符串 "Array",表示该对象是一个数组。
例子 2:自定义类型标签
// javascriptcn.com 代码示例 class MyClass { get [Symbol.toStringTag]() { return "MyClass"; } } const obj = new MyClass(); console.log(Object.prototype.toString.call(obj)); // "[object MyClass]" console.log(obj[Symbol.toStringTag]); // "MyClass"
在这个例子中,我们定义了一个 MyClass 类,并在该类的原型上添加了 Symbol.toStringTag 属性。该属性返回的是字符串 "MyClass",用来标识该对象的类型。然后,我们创建了一个 obj 对象,并将其类型标签打印到控制台上。该方法返回的是字符串 "[object MyClass]",表示该对象是一个 MyClass 类型的对象。然后,我们使用 obj[Symbol.toStringTag] 获取该对象的类型标签,并将其打印到控制台上。该方法返回的是字符串 "MyClass",表示该对象是一个 MyClass 类型的对象。
总结
在本文中,我们探讨了 ECMAScript 2016 中的 Array.prototype @@toStringTag 方法的使用及其例子。我们学习了如何使用这个方法来获取对象的类型标签,并且通过例子展示了如何自定义类型标签。希望本文能够帮助你更好地理解 @@toStringTag 方法的使用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65094a8c95b1f8cacd406435