我试图从恰好是字符串的对象中提取所有属性和方法:var str = "Hello World!"
如果我使用命令Object.getOwnPropertyNames(str)
,我会得到一个属性和方法列表:["0", "1", "2", "3", "length"]
。但是我知道还有其他方法,如.toUpperCase()
属于字符串对象,但没有列出。
我的问题:为什么没有列出方法.toUpperCase()
?如何与其他许多人一起列出(.indexOf()
...)?
以下是代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Display properties and methods from objects</title>
</head>
<body>
<script type="text/javascript">
var str= 'Hello World!'
var listPropertiesMethods = Object.getOwnPropertyNames(str)
console.log(listPropertiesMethods);
</script>
</body>
</html>
答案 0 :(得分:5)
因为列出的属性(My function() {
for(var index = 2; index <= sheet.getLastRow();index++)
{
var templateCounter = 0;
for(templateCounter = 0; templateCounter <= 3; templateCounter++)
{
if (templateCounter === 0){
var templateid = "1zpKsKi67AZ4SehuOA4XutExO2XhqKcSbMwtR6f4vMoM";
}
if (templateCounter === 1){
var templateid = "1KRyJo2CkR2YCDZ7YhPeNSU3DRJDy0xbRhoPX_M34XbE";
}
if (templateCounter === 2){
var templateid = "1e4XAaqCC04w3zWxImalQ5u-ej-_TGJ8RF6y9beTxTls";
}
if (templateCounter === 3){
var templateid = "1tsM9SUkfq1Bb-lWAHLRKH4F2RUT-5JaJ6qoXIQVrMao";
}
... Mail Merge Script
//End of Template Counter Loop
}
//End of Index loop
}
//End Of My Function
}
,...)不是字符串对象本身的一部分,而是其原型的一部分:
indexOf
答案 1 :(得分:3)
答案 2 :(得分:0)
Object.getOwnPropertyNames(obj)
方法仅返回obj的属性(如length)。您可以使用Object.getPrototypeOf(obj)
获取更完整的方法/属性列表。
例:
Object.getOwnPropertyNames( “测试”)
(5) ["0", "1", "2", "3", "length"]
Object.getPrototypeOf( “测试”)
String {"", formatUnicorn: ƒ, truncate: ƒ, splitOnLast: ƒ, contains: ƒ, length: 0, …}