一开始,我对Javascript使用函数来创建对象感到困惑。下面的示例经常用来说明Javascript中原型是如何工作的:
function Car(){
this.setModel=function(model){
this.model=model;
}
this.getModel=function(){
return this.model;
}
}
function Bus(){}
Bus.prototype=new Car();
var obj=new Bus();
obj.setModel('A Bus');
alert(obj.getModel('A Bus');
是否可以在不使用 new FunctionName()
的情况下使用原型?比如像这样:
var Car={
setModel:function(model){
this.model=model;
},
getModel:function(){
return this.model
}
}
var Bus={
prototype:Car;
};
var obj=Bus;
obj.setModel('A Bus');
alert(obj.getModel());
这不使用函数和 new
来创建对象,而是直接创建对象。
是否可以在不使用废弃特性如 Object.__proto__
或实验性函数如 Object.setPrototypeOf()
的情况下实现呢?
new
对象是常见的吗?例如,请参阅有关此的MDN文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript - Dave Newton