请记着:是new要害字最终使得结构函数被执行。在这个例子中,它将会运行Ball("creating new Ball", "Soccer Ball");而要害字this将指向ball0。
因此,这行:this.name=specifiedName酿成了ball0.name="Soccer Ball"。
它主要是说:给ball0添加属性name,属性值是Soccer Ball。
我们此刻只是添加了一个name属性给ball0,看起来和上一个例子中所做的很象,但却是一个更好更具扩展性的要领。此刻,我们可以随心所欲的建设很多带有属性的ball而无需我们手动添加它们。并且,人们也但愿建设的Ball工具可以或许清晰的看懂它的结构函数而且可以或许轻松找出Ball的所有属性。让我们添加更多属性到Ball里。
Example DT5
Language:javascript, parsed in: 0.026 seconds, using GeSHi 1.0.7.12
function Ball(color, specifiedName, owner, weight)
{
this.name=specifiedName;
this.color=color;
this.owner=owner;
this.weight=weight;
}
var ball0=new Ball("black/white", "Soccer Ball", "John", 20);
var ball1=new Ball("gray", "Bowling Ball", "John", 30);
var ball2=new Ball("yellow", "Golf Ball", "John", 55);
var balloon=new Ball("red", "Balloon", "Pete", 10);
alert(ball0.name); // 输出 "Soccer Ball"
alert(balloon.name); // 输出 "Balloon"
alert(ball2.weight); // 输出 "55"
嘿!利用面向工具术语,你可以或许说Ball是一个拥有如部属性的工具范例:name, color, owner, weight。
将工具赋给属性我们并没被限制只能添加形如字符串可能数字之类的简朴数据范例作为属性。我们也可以或许将工具赋给属性。下面,supervisor是Employee的一个属性.
Example DT6
Language:javascript, parsed in: 0.021 seconds, using GeSHi 1.0.7.12
function Employee(name, salary, mySupervisor)
{
this.name=name;
this.salary=salary;
this.supervisor=mySupervisor;
}
var boss=new Employee("John", 200);
var manager=new Employee("Joan", 50, boss);
var teamLeader=new Employee("Rose", 50, boss);
alert(manager.supervisor.name+" is the supervisor of "+manager.name);