Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript-如何在对象中大写key.value?_Javascript_Oop - Fatal编程技术网

Javascript-如何在对象中大写key.value?

Javascript-如何在对象中大写key.value?,javascript,oop,Javascript,Oop,如何大写每个联系人的名字的第一个字母 String.prototype.capitalize = function (string) { return string.charAt(0).toUpperCase() + string.slice(1);} var contactList = {}; contactList.bobSmith = { firstName: "bob", lastName: "smith", location: "new york" }; contac

如何大写每个联系人的名字的第一个字母

 String.prototype.capitalize = function (string) { return string.charAt(0).toUpperCase() + string.slice(1);}

 var contactList = {};

 contactList.bobSmith = {
 firstName: "bob",
 lastName: "smith",
 location: "new york"
};

contactList.johnDoe = {
 firstName: "john",
 lastName: "doe",
 location: "san francisco"
};

var contact2 = contactList["johnDoe"].firstName;
contact1.capitalize();
contact2.capitalize();
console.log(contact1 + " " + contact2);

我收到一条错误消息,上面写着“UncaughtTypeError:无法读取未定义的属性'charAt'。

函数(){返回this.charAt(0).toUpperCase()+this.slice(1);}
函数(){返回this.charAt(0).toUpperCase()+this.slice(1);}

您的
String.prototype.capitalize
函数需要一个参数
String
,调用该参数时您不会将其传递给它。我建议避免向
字符串.prototype
添加方法,而只使用独立函数

function capitalise(str) {
  return str.slice(0,1).toUpperCase() + str.slice(1);
}

contact2 = capitalise(contact2);
//=> "John"
…或者,如果您希望将contactList对象中的值大写,则只需

contactList.johnDoe.firstName = capitalise(contact2);

希望有帮助。:)

您的
String.prototype.capitalize
函数需要一个参数
String
,调用时您不会将该参数传递给它。我建议避免向
字符串.prototype
添加方法,而只使用独立函数

function capitalise(str) {
  return str.slice(0,1).toUpperCase() + str.slice(1);
}

contact2 = capitalise(contact2);
//=> "John"
…或者,如果您希望将contactList对象中的值大写,则只需

contactList.johnDoe.firstName = capitalise(contact2);

希望有帮助。:)

我不会养成在原型中弹出方法的习惯。这是不受欢迎的,因为未来的JavaScript版本可能会出现,并在原型中使用相同名称的方法,你会被搞砸

我不是这样写的,但是你可以把大写函数放在contactList对象上,你就基本上实现了与原型相同的功能

var contactList = {};

 contactList.names =[
{
 firstName: "bob",
 lastName: "smith",
 location: "new york"
},
{
 firstName: "john",
 lastName: "doe",
 location: "san francisco"
}];

function capitalizeName(name) {
    var strCap = name[0].toUpperCase();
    var tailTxt = name.substr(1, name.length);
    fullTxt = strCap + tailTxt;
    return fullTxt;
)

$.each( contactList.names, function(i){
    capitalizeName(contactList.names[i].firstName);
});

我不会养成在原型中弹出方法的习惯。这是不受欢迎的,因为未来的JavaScript版本可能会出现,并在原型中使用相同名称的方法,你会被搞砸

我不是这样写的,但是你可以把大写函数放在contactList对象上,你就基本上实现了与原型相同的功能

var contactList = {};

 contactList.names =[
{
 firstName: "bob",
 lastName: "smith",
 location: "new york"
},
{
 firstName: "john",
 lastName: "doe",
 location: "san francisco"
}];

function capitalizeName(name) {
    var strCap = name[0].toUpperCase();
    var tailTxt = name.substr(1, name.length);
    fullTxt = strCap + tailTxt;
    return fullTxt;
)

$.each( contactList.names, function(i){
    capitalizeName(contactList.names[i].firstName);
});

您会得到错误,因为函数希望传递一个参数(
string
),但在
contact1.capitalize()
contact2.capitalize()
中没有传递任何内容。因此,
string
未定义的
。您会得到错误,因为函数期望传递一个参数(
string
),但您不会在
contact1.capitalize()
contact2.capitalize()
中传递任何内容。因此
字符串
未定义的