为什么这个Javascript代码会产生错误
Why is this Javascript code producing an error?
我不明白为什么这段代码不起作用。我正在尝试理解Javascript中的原型。如果我在函数中声明一个新函数,那么为什么我不能调用该函数呢?
<script>
function Person(first) {
this.firstName = first;
}
Person.prototype.name=function() {
this.addLastNameInner=function() {
return this.firstName+" Appended last name";
}
}
Person.prototype.name.addLastName=function() {
return this.firstName+" Appended last name";
}
var pr=new Person('john');
alert(pr.name.addLastNameInner());//Not working
alert(pr.name.addLastName());//working fine
</script>
要使代码正常工作,您需要更改声明name
:的方式
Person.prototype.name = {
addLastNameInner: function() {
return this.firstName+" Appended last name";
}
};
Person.prototype.name.addLastName = function() {
return this.firstName + " Appended last name";
};
因为,作为.name
,您所做的是不使用new
关键字初始化它。而且不能这样做。.name
必须是具有函数的Object
。
对于代码中对象和函数的范围存在一些误解。我希望下面的代码是你想要的。
function Person(first) {
this.firstName = first;
}
Person.prototype.name={
addLastNameInner:function(pr){
return pr.firstName+" Appended last name";
}
}
Person.prototype.name.addLastName=function(pr){
return pr.firstName+" Appended last name";
}
var pr=new Person('john');
alert(pr.name.addLastNameInner(pr));//Working fine
alert(pr.name.addLastName(pr));//working fine
相关文章:
- 咕噜声.js无法读取文件(错误代码:EISDIR)
- 科尔多瓦指南针 API 给出错误代码 3
- 如何在使用JavascriptCallbackBehavior时引发带有HTTP错误代码的WebFaultExcepti
- 解析错误代码 121
- Ajax get jsonp给出错误代码500“;请求被阻止”;来自MVC应用程序
- ionic http获取到本地文件会给出http错误代码0
- Imacros/jQuery TypeError:无法访问死对象,第 816 行(错误代码:-991)
- 电话差距/网络数据库错误代码说明
- NaN 错误代码有什么问题
- 异常:“远程主机关闭了连接.错误代码为 0x80070057”
- 咕噜声/巴别塔错误:无法写入“dist”文件(错误代码:EISDIR)
- 科尔多瓦的文件传输写入错误(代码 1)
- 角度$asyncValidators将错误代码传输到模板
- 接收错误代码 3,http_status空,正文空,异常状态 2
- 运行 grunt.file.copy 返回错误代码:ENOENT
- Parse.com 找不到错误代码:141 函数
- 尝试运行作业时分析错误代码 1 内部错误
- 节点 js 退出状态 8,错误代码 0 在 Mac 上运行
- 如何使用mootools确定损坏图像上的错误代码
- HTML 错误代码 206