我知道如何实例化对象并调用它们,但我就是找不到在我的脚本中使用它们的理由。我能做到
var obj = {
hi: function() {
return "Hello";
}
};
但是为什么我不能像这样做:
function hi() {
return "Hello";
}
我也从来没有理解过为什么我应该使用原型。我在JavaScript中做的大多数事情都可以在没有对象的情况下做得很好。但我想使用对象。对象是用来做什么的,我应该使用它们的原因是什么?
发布于 2011-08-04 01:45:45
对象很有用,例如,将属于一起的值组成一个单元。示例:
function Person(firstName, lastName, gender, age) {
this.firstName = firstName;
this.lastName = lastName;
this.gender = gender;
this.age = age;
}
Person.prototype = {
getFullName: function() { return this.firstName + ' ' + this.lastName; },
isMale: function() { return this.gender == 'Male'; },
isFemale: function() { return this.gender == 'Female'; }
};
var amanda = new Person('Amanda', 'Smith', "Female", 42);
var john = new Person('John', 'Doe', 'Male', 72);
alert(amanda.getFullName());
alert(john.isMale());
与结构较差的相比:
function getFullName(firstName, lastName) {
return firstName + ' ' + lastName;
}
function isMale(gender) {
return gender == 'Male';
}
function isFemale(gender) {
return gender == 'Female';
}
var amandaFirstName = 'Amanda';
var amandaLastName = 'Smith';
var amandaGender = 'Female';
var amandaAge = 42;
var johnFirstName = 'John';
var johnLastName = 'Doe';
var johnGender = 'Male';
var johnAge = 72;
alert(getFullName(amandaFirstName, amandaLastName));
alert(isMale(johnGender));
发布于 2011-08-04 01:34:34
如果没有你所说的对象,你将会到处都是松散的函数。这通常会导致代码很难维护。最低限度,对象使您能够将函数集中在一起以模拟名称空间--这是最低限度的。
发布于 2011-08-04 01:34:57
在您的简单示例中,编写一个半“类”/对象来保存该方法确实没有任何意义。但是当您的代码增长时,您将获得越来越多的函数和方法,您不会真的希望将它们都放在一个大的(全局)名称空间中。这实在是太难维护了,在以后的某个时刻,包括你在内,没有人会理解这些代码。
这是将方法包装在一个对象/“类”中的第一个好理由。另一个很好的原因是可重用性。如果您正在编写能够继承其方法的对象,则可以重新创建另一个对象并从那里对其进行抽象。最简单的概念,但是如果你想在你的应用程序中把“事物”描述为模块/对象,你就需要使用它。
https://stackoverflow.com/questions/6930601
复制相似问题