我在OOP方面有很好的背景,主要是C ++和Java。我想在JavaScript中使用对象,包括继承。我读过的关于JS继承的文章总是谈论原型继承模型。为JS对象创建函数(方法)时,总是在声明对象本身之后以Object.prototype.funcName = function() { }
这样的格式声明它们。是的,这可行,但是在声明对象内部的函数时似乎也可行,例如:this.funcName = function() { };
这是我读过的文章之一:https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Inheritance。
我已经用两种方法测试了我的代码,它们似乎工作得很好。有人可以通过在对象中声明我的功能(例如标准OOP)来告诉我是否会遇到任何问题,还是最后会咬住我?
这是我的方式:
function Person(name) {
this.name = name;
this.greeting = function() {
console.log('Hi! I\'m ' + this.name + ' from Person');
};
};
这是原型方法:
function Person(name) {
this.name = name;
};
Person.prototype.greeting = function() {
console.log('Hi! I\'m ' + this.name + ' from Person.proto');
};
创建对象并调用问候语可以通过以下两种方式进行:
var person = new Person("Cool Dood");
person.greeting();
关于在对象声明中声明函数的“我的”方式将来是否会给我带来麻烦的任何见解?