如何解决是否可以在Java中的文字定义对象的原型中添加一些内容?
| 因此,如果我要创建这样的对象文字。var person1 = {
age : 28,name : \'Pete\' }
然后我向对象添加一个函数...
person1.sayHelloName = function(){
return \'Hello \' + this.name;
};
alert(person1.sayHelloName());
我想知道\'prototype \'关键字在所有这些内容中的位置。我无法将原型添加到对象(仅添加到函数构造函数),因此我能够/必须在这种情况下使用原型。
解决方法
您不能以这种方式使用
prototype
,因为就像您说的那样,它用于向必须使用the3ѭ关键字定义的构造函数添加属性。在示例中,您正在做的事情是扩展person1
对象,但是该对象只是单个变量,而不是可实例化的类。这意味着您不能使用new
关键字“创建”另一个person1
,而如果它是已定义类的实例,则可以。
, 您不必在这里使用prototype
。由于您只有某个事物的一个实例(一个对象),因此可以直接在该对象上设置函数。
FWIW,ECMAScript 5定义了Object.getPrototypeOf
,您可以使用它获取任何对象的原型(仅在“现代”浏览器中可用)。
, var Person = function() {
this.age = 28;
this.name = \"peter\";
}
Person.prototype.sayHelloName = function(){
return \'Hello \' + this.name;
};
var person1 = new Person;
, 您将使用原型来定义类的所有实例具有的方法。在您的情况下,这没有任何意义,因为您仅创建了不属于类的独立对象。
function Person (age,name)
{
this.age = age;
this.name = name;
}
Person.prototype.sayHelloName = function ()
{
return \'Hello \' + this.name;
}
person1 = new Person(28,\'Pete\');
alert(person1.sayHelloName());
仅当您期望创建多个人员时,这才有意义。
, 您可以在以下位置看到:
向对象文字添加原型
可以是您想要的。
, 您无需在对象文字中使用\'prototype \'。仅当使用构造函数模式(和某些其他设计模式)时,才可以使用\'prototype \'。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。