我创建了一个名为foo的类:
foo = function()
{
...
}
然后我从foo类创建一个名为pear的对象:
pear = new foo();
然后我把梨对象放在数组中:
array_obj = [pear];
因此,当我通过" for循环"解析array_obj时,我想得到实例的名称,即" pear" string:
for(var i = 0; i < array_obj.length; i++)
{
console.log(array_obj[i].name);
}
但它不起作用,因为array_obj[i].name
没有返回&#34; pear&#34;名。
你有个主意吗?诚挚地谢谢你们。
答案 0 :(得分:4)
更改您的功能:
<?php
if(isset($_POST['submit'])){
if(isset($_GET['go'])){
if(preg_match("/^[ a-zA-Z]+/", $_POST['name'])){
$name=$_POST['name'];
//connect to the database
$db=mysql_connect ("host", "username", "password") or die ('I cannot connect to the database because: ' . mysql_error());
//-select the database to use
$mydb=mysql_select_db("database_name");
//-query the database table
$sql="SELECT movie_id, movie_title, movie_director, movie_lead_actor, movie_YOR, movie_img FROM sci_fi_movies WHERE movie_title LIKE '%" . $name . "%' OR movie_director LIKE '%" . $name ."%' OR movie_lead_actor LIKE '%" . $name ."%'";
//-run the query against the mysql query function
$result=mysql_query($sql);
//-create while loop and loop through result set
while($row=mysql_fetch_array($result)){
$Title =$row['movie_title'];
$Director =$row['movie_director'];
$Actor =$row['movie_lead_actor'];
$Year =$row['movie_YOR'];
$Image =$row['movie_img'];
$ID =$row['movie_id'];
//-display the result of the array
echo "<li>";
echo "<h4>Title</h4><p>$Title</p>";
echo "<h4>Director</h4><p>$Director</p>";
echo "<h4>Lead Actor</h4><p>$Actor</p>";
echo "<h4>Year of Release</h4><p>$Year</p>";
echo "<img src=\"$Image\"></img>";
echo "</li>";
}
} else{
echo "<p>Please enter a search query</p>";
}
}
}
?>
你的电话:
foo = function(name)
{
this.name = name;
}
答案 1 :(得分:3)
你不能这样做。 1 - 它不起作用,2 - 对象是一个“层违例”,它知道引用它的变量名称的任何信息。
此外,变量名称对程序员来说也很方便。它们可以通过程序员选择进行更改,甚至可以通过缩小器或混淆器等自动更改。
如果名称真的很重要,它要么成为对象本身的属性(在构造函数中传递,按@Paul的回答),要么需要维护映射的“哈希”(也称为“地图”)单个对象的“人类可读名称”:
var map_obj = { pear: new foo() };
然后,您可以迭代该映射的键(Object.keys(map_obj)
)以按名称查找每个对象。但是在这种情况下,每个名称必须是唯一的 - 地图不能包含重复的键。
答案 2 :(得分:2)
你不能因为
array_obj[i].name == pear.name == (new foo()).name
这取决于你从foo()
函数返回的内容。我怀疑它会返回undefined
,因为你没有在foo()
您可以使用@Paulo解决方案