新手问个简单的代码!

a92134 2013-03-28 11:24:15
<!DOCTYPE html>
<html>
<body>
<script>
function person(firstname,lastname,age,eyecolor)
{
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;

this.changeName=changeName;
function changeName(name)
{
this.lastname=name;
}
}
myMother=new person("Steve","Jobs",56,"green");
myMother.changeName("Ballmer");
document.write(myMother.lastname);
</script>

</body>
</html>



this.changeName=changeName;
function changeName(name)
{
this.lastname=name;
}

这段代码不明白什么意思,this.changeName=changeName;怎么可以把函数这样用啊?
...全文
342 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
duanxian0605 2013-03-30
  • 打赏
  • 举报
回复
只是属性名字和方法名相同了而已呀,this.changeName=changeName;第一个changeName是这个类的属性,第二个changeName是这个类的方法。虽然名字相同,事实上是不同的。 你也可以写成this.changeName=test;function test(){....} 这个方法的名字可以任何符合要求的命名。
ftiger 2013-03-29
  • 打赏
  • 举报
回复
而在JavaScript世界中函数却是一等公民,它不仅拥有一切传统函数的使用方式(声明和调用),而且可以做到像简单值一样赋值、传参、返回,这样的函数也称之为第一级函数(First-class Function)。不仅如此,JavaScript中的函数还充当了类的构造函数的作用,同时又是一个Function类的实例(instance)。这样的多重身份让JavaScript的函数变得非常重要。 所以不能简单的与别的语言的函数等同起来,javascript的函数可以象别的对象如string一样给付值,给引用,函数可以注入一个函数并执行,比如经典的each Array.prototype.each= function(fn, bind){ for (var i = 0, l = this.length; i < l; i++){ if (i in this) fn.call(bind, this[i], i, this); } } 就是array中每个item当成参数去执行注入的function
zhuyijian135757 2013-03-28
  • 打赏
  • 举报
回复
function 可以看成是一个对象 也可以看成是一个类
豪情 2013-03-28
  • 打赏
  • 举报
回复
只是把函数的引用赋给构造函数的静态方法,以便于实例方便的调用。

87,991

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧