javascript - 使用this与不用this的区别
ringa_lee
ringa_lee 2017-04-11 12:09:38
[JavaScript讨论组]
function x(){x.name = "tom";};
var z = new x();
alert(z.name);
console.log(z.name);

而把第一行代码改成this就弹出tom?

ringa_lee
ringa_lee

ringa_lee

全部回复(5)
PHP中文网

你这问的比较大,拆分一下问题,主要是有几个点:

  1. this是啥

  2. 构造函数是什么

  3. new运算符做了什么

前两个问题请参阅《JavaScript高级程序设计》第六章
第三个问题请参考规范:
The new Operator

黄舟

this 当前对象
1、第一行中,x都未定义,故x.name均为'undefined',
2、当用this时,this.name 即给当前对象属性name赋值,后面同理

黄舟

也可以使用prototype来定义name属性:

function x(){x.prototype.name = "tom"}

阿神

通过new构造函数的方式创建对象时,会在函数中创建一个新对象,并将this指向这个对象,然后执行代码,最后将this返回;所以new x()就会就会创建一个对象,并给这个对象设置一个name属性,最后将这个对象返回给z。

ringa_lee

说下第一种情况,对于直接fun.xxx=xx的这种设置,如果要用那就不能用new操作了,
Console.log(fun.xxx)就可以得到。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号