Javascript 将一个对象用作其他对象的蓝图
我创建了一个简单的对象,希望用作其他对象的蓝图。但有些事情进展不顺利。有人能找出原因吗?当我单击一个按钮时,它应该更改div的innerHTML以显示新对象的属性 这是一把小提琴Javascript 将一个对象用作其他对象的蓝图,javascript,object,Javascript,Object,我创建了一个简单的对象,希望用作其他对象的蓝图。但有些事情进展不顺利。有人能找出原因吗?当我单击一个按钮时,它应该更改div的innerHTML以显示新对象的属性 这是一把小提琴 var objekt = { name : "olsi", surname : "Angjellari", kot : function () { return this.name + this.surname }, print : function () {
var objekt = {
name : "olsi",
surname : "Angjellari",
kot : function () {
return this.name + this.surname
},
print : function () {
id.innerHTML = this.kot()
}
};
有许多问题: 当您想要执行以下操作时:
var dana = new objekt();
然后,objekt必须是函数,而不仅仅是对象,因为对象不是构造函数,只有函数才能是构造函数。这是一种方法:
function objekt() {
this.name = "olsi";
this.surname = "Angjellari";
};
objekt.prototype = {
kot : function () {
return this.name + this.surname
},
print : function () {
id.innerHTML = this.kot()
}
};
其次,在JSFIDLE中,如果要将函数名放入HTML中,那么这些函数必须是全局函数。要使代码在JSFIDLE中成为全局的,必须将左上角的设置设置为No wrap-in或No wrap-in。当您使用JSFIDLE时,您的代码是在onload处理程序中定义的,因此无法通过HTML中的函数调用访问
第三,一旦将objekt变成一个函数来修复之前的问题,那么就不能直接调用objekt.print。您可能想调用.print在类型为objekt的实际对象上,例如dana或boi
您可以在这里看到所有这些都在工作:您想要创建一个构造函数,这样您就可以像尝试一样使用新操作符创建实例
function objekt(name,surname){
this.name = name||"olsi";
this.surname = surname||"Angjellari";
this.kot = function () {
return this.name + this.surname
};
this.print = function () {
id.innerHTML = this.kot()
};
}
var obj = new objekt();
var obj2 = new objekt("First","Last");
obj.print();
obj2.print();
你也可以通过原型制作这些
function objekt(){}
objekt.prototype.name = "";
objekt.prototype.surname = "";
objekt.prototype.kot = function(){
return this.name + this.surname;
};
objekt.prototype.kot = function(){
id.innerHTML = this.kot();
};
var obj = new objekt();
obj.name = "First";
obj.surname = "Last";
var obj2 = new objekt();
obj2.name = "Last";
obj2.surname = "First";
obj.print();
obj2.print();
我只是将代码粘贴到小提琴上,它在我的电脑上也不起作用。但是,感谢您对如何在使用小提琴时纠正错误的见解。现在它的效果非常好!谢谢!