0x4*_*2D2 12 javascript programming-languages
我理解如何实例化对象并调用它们,但我找不到在脚本中使用它们的理由.我可以
var obj = {
hi: function() {
return "Hello";
}
};
Run Code Online (Sandbox Code Playgroud)
但为什么我不能像以下那样做:
function hi() {
return "Hello";
}
Run Code Online (Sandbox Code Playgroud)
我从来没有理解为什么我应该使用原型.我在JavaScript中做的大多数事情都可以在没有对象的情况下完成.但我想使用对象.什么是对象以及我应该使用它们的原因是什么?
Guf*_*ffa 15
对象可用于例如从属于一起的值中创建单个单元.例:
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());
Run Code Online (Sandbox Code Playgroud)
与较不结构化的相比:
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));
Run Code Online (Sandbox Code Playgroud)
对象很有用,因为
如果您不需要非全局状态,不需要查找表,并且您的问题很小或更容易在功能上分解,那么请不要使用对象.
归档时间: |
|
查看次数: |
7533 次 |
最近记录: |