var object1= new Object();
object1.name= 'Dana';
object1.age = 18;
var object2= new Object();
object2.name= 'Togo';
object2.age= 21;
var object3= new Object();
object3.name= 'Chris';
object3.age= 29;
object3.rank = function() {
console.log( this.name + ' is ' + this.age + ' years of age. ');
};
object3.rank();
有没有办法像...
rank(object1);
然后打印出来
Dana is 18 years of age.
不必为每个对象键入一个方法
就像所有看起来相似的对象的一种方法。我对 for(var key in obj)
循环不太满意,但请让我知道这两种方式是否可行。太感谢了。我很感激。如果我的逻辑有很大的差距,请给我解释一下。
最佳答案
确实有。面向对象的 Javascript 是您在这里想要做的事情的答案。
这是一个与您提到的类似的示例:
var Person = function (firstName) {
this.firstName = firstName;
};
Person.prototype.sayHello = function() {
console.log("Hello, I'm " + this.firstName);
};
var person1 = new Person("Alice");
var person2 = new Person("Bob");
// call the Person sayHello method.
person1.sayHello(); // logs "Hello, I'm Alice"
person2.sayHello(); // logs "Hello, I'm Bob"
因此这里的 sayHello 方法只定义了一次 - 但可以跨每个实例化对象使用!
可在 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript 找到极好的引用指南。帮助您完成后续步骤。如果您在使用时遇到任何困难,请随时提出。
希望这对您有所帮助!
ES6 现在被广泛使用并且有这个更易于维护的类定义过程:
class Person {
constructor(name) {
this.name = name;
}
sayHello() {
console.log("Hello, I'm", name);
}
}
就是这样!现在您可以使用以下命令调用:
let person1 = new Person("Alice");
person1.sayHello();
关于javascript - 在 JavaScript 中,有没有办法使用 "this"关键字或 (for, in) LOOP 来打印多个对象属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39621840/