JavaScript的构造函数一些问题

qq_35510443 2017-05-21 11:31:47
function Person(){
this.name = name;
}
var person = new Person();
alert(person.name);//此网页显示

function Person(name){
this.name = name;
}
var person = new Person();
alert(person.name);//undefined


function Person(){
this.name = "Nicholas‘’;
}
var person = new Person();
alert(person.name);//Nicholas

function Person(){
this.age = age;
}
var person = new Person();
alert(person.age);//错误
改变了参数,改变了属性,还有赋给this.name不同的值,结果不同,不太懂,求各位大神讲解?谢谢啊
...全文
149 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_35510443 2017-05-22
  • 打赏
  • 举报
回复
讲得特别好,谢谢啊,特别感谢!
天际的海浪 2017-05-22
  • 打赏
  • 举报
回复
function Person(){ this.name = name;//函数内没有声明name变量,就会到全局环境中找全局变量,由于js的全局变量就是window对象的属性,刚好window对象中就有个name属性,window.name也就是窗口的名称 } var person = new Person(); alert(person.name);//此网页显示 function Person(name){//函数设置了一个参数,但是函数调用时却没有给参数传值,参数的默认值就是 undefined this.name = name; } var person = new Person(); alert(person.name);//undefined function Person(){ this.name = "Nicholas‘’; } var person = new Person(); alert(person.name);//Nicholas function Person(){ this.age = age;//函数内没有声明age变量,全局环境中也没有age全局变量(也就是window对象中没有age属性),就会因为找不到age变量而出错 } var person = new Person(); alert(person.age);//错误
漠子凉 2017-05-22
  • 打赏
  • 举报
回复
构造函数.意思是初始化值.就是你new了这个函数.他自动运行一遍里面的赋值. 用个比喻的说法 假如一个函数givemoney是用来给你钱的. 首先你得有 this.money = "给你多少钱"; 如果你指定多少钱 比如指定1元 this.money = "1元" 这样当你var a = new givemoney()"了之后 你在下面输出a.money就会得出1元 假如你希望给你多一点 你就改变这个值 比如给你2块.相当于覆盖原来的1元 在new完后再进行赋值来覆盖 a.money = "2元" 你现在输出就会发现a.money = "2元" 另一种是初始化传入参数来赋值 说会刚才的1元初始化赋值 你不希望写死了函数就进行传参 比如 function givemoney(m) { this.money = m; } 这样在new 的时候就要传参数 var a = new givemoney("1元"); 然后输出a.money 那个new的意思是把这个函数赋值给一个对象.比如上面的givemoney就是把这个函数赋值给a.里面的this就指这个a this.后面的名字都是a的属性 都可以通过类似this.的方法来调用 比如this.money的值 跟a.money的值是一样的
JavaScript核心技术 简介: 《JavaScript核心技术》对于各种浏览器、浏览器版本、JavaScript版本、DOM版本的介绍,有助于我们理解所遇到的各种新旧代码,使我们能够对这些代码做出正确的取舍。《JavaScript核心技术》还提供了一些使用JavaScript的最佳实践。无论是新手还是老手,这些如何正确使用JavaScript的经验都能帮助他们养成良好的编程习惯。《JavaScript核心技术》还介绍了一些调试和开发JavaScript的工具,这些工具无疑能够提高我们的开发效率。 《JavaScript核心技术》最后对于Ajax和几个流行的JavaScript库的介绍,无疑会开阔我们在JavaScript使用上的思路。 《JavaScript核心技术》是一本真正意义上的“新书”,不仅介绍了最新的JavaScript知识和方向,还完全覆盖了当今Web开发中关于JavaScript的所有重要话题,它使用了大量实例代码,图文并茂地讲解了使用JavaScript的各个层次和领域的内容。它不是一本参考手册,但却是一本值得拥有的教程。 JavaScript核心技术 目录: 前言 第1章JavaScript初探 1.1规范和实现相互交织的历史 1.2跨浏览器的不兼容性和其他常见的JavaScript传说 1.3你能用JavaScript来做什么 1.4JavaScript初探:“HelloWorld!” 1.5JavaScript沙箱 1.6可访问性和JavaScript的最佳实践 第2章JavaScript数据类型与变量 2.1变量的标识 2.2作用域 2.3简单类型 2.4常量:有名称但不改变 2.5习题 第3章运算符和语句 3.1JavaScript语句的格式 3.2简单语句 3.3条件语句和程序流 3.4条件运算符 3.5逻辑运算符 3.6高级语句:循环语句 3.7习题 第4章JavaScript对象 4.1对象构造函数 4.2Number对象 4.3String对象 4.4正则表达式与RegExp 4.5有专门用途的对象:Date和Math 4.6JavaScript数组 4.7关联数组:不是数组的数组 4.8习题 第5章函数 5.1定义函数:细数所有方式 5.2回调函数 5.3函数和递归 5.4嵌套函数、函数闭包和内存泄漏 5.5作为对象的函数 5.6习题 第6章捕捉事件 6.1O级DOM上的事件句柄 6.22级DOM上的事件句柄 6.3产生事件 6.4习题 第7章表单与即时验证 7.1访问表单 7.2把事件附加在表单上:不同的方法 7.3选择列表 7.4单选按钮和复选框 7.5输入字段和JiT正则表达式 7.6习题 第8章沙箱及之上的cookie、连通性和隐私 第9章基础浏览器对象 第10章DOM:文档对象模型 第11章创建定制的JavaScript对象 第12章构建动态网页:在脚本中加入样式 第13章使用Ajax 第14章好消息:生动的程序库!令人惊异的Web服务!有趣的API! 附录习题答案

87,993

社区成员

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

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