【发布时间】:2015-02-22 09:06:07
【问题描述】:
<!doctype >
<html>
<meta utf="utf-8">
<header>
<title>PRACTISE</title>
<script >
function MakeMe(name , age , likes, shout){ //creates objects
return {
name : name,
age : age,
likes : likes,
shout : function(){
alert(shout + " " +last(this.likes));
}
}
}
function last(obj){ //gets last element of the array
var el=obj.pop();
obj.push(el);
return el;
}
var dammy = MakeMe("Damilola" , 20, ["Jesus" , "Programming"], "Ewooooooo");//creates an object
dammy.shout();
var dara = MakeMe("Daramola" , 17, ["God" , "Gaming" , "Ed sheeran"] , "Leaveeeeeeeeeeee");//creates an object
// i wrote the following codes below to check if dammy and dara are really different objects
alert(last(dara.likes));
dara.shout();
dammy.likes.push("Taylor");
alert(last(dara.likes));
alert(last(dammy.likes));
dammy.shout();
</script>
</head>
</html>
我的主要问题是:与使用构造函数和使用“new”关键字的常规方法相反,这是一种在 javascript 中创建对象的好方法吗?如果使用上述方法创建对象有任何副作用。谢谢你
//Normal way is
function MakeMe(name ,age, likes, shout){
this.name = name;
this.age= age;
this.likes={"me", "you", "us"};
this.shout = function(){
alert(shout + " " +last(this.likes));
};
}
var dammy = new MakeMe("D" , 17, ["God" , "Gaming" , "Lorde"] , "Loveee");
【问题讨论】:
-
好像没问题,你可以用任何方式。
标签: javascript object constructor