javascript实例化对象

functiontest(num){this.m_num=5;functionfun1(){alert(num);alert(tihs.m_num);}this.fun2... function test(num){
this.m_num = 5;
function fun1(){
alert(num);
alert(tihs.m_num);
}
this.fun2 = function(){
fun1();
}
this.fun3 = fun1;
}

new test(1).fun2();
new test(1).fun3();
谁给我分析下这段代码。。
展开
 我来答
寻梦生
推荐于2016-07-28 · TA获得超过179个赞
知道小有建树答主
回答量:581
采纳率:50%
帮助的人:451万
展开全部
这段代码很简单,你应该是不明白两个运行结果不一样的原因,我只说明运行结果不同的原因。
首先你要明白this关键字是与运行时环境有关,和声明时环境无关。

new test(1).fun2();这个fun2调用fun1时这句alert(tihs.m_num);这个this的运行环境是fun2,所以它代表fun2,只会弹出undefined,

new test(1).fun3();由于fun3的指针是指向fun1的,而fun1是test的一个属性,这句alert(tihs.m_num);这个this的运行环境是test,所以它代表test,只会弹出5。
育知同创教育
2018-06-28 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
关于js中实例和对象的解释如下:
比如定义persion如下:
var person = new Object();
var person = {};

JS 是基于原型的面向对象语言, 所有数据都可以当作对象处理,所以 person 是对象, 可以把它当作是 Object 的实例. 当然, 一切都是对象。
第二个采用对象字面量的方式生成的person也是如此。
然而它内部没有调用new Object(),而是采用JSON的初始化方式:
将现有的引用指向person。
实例和对象的区别,从定义上来讲:
1、实例是类的具象化产品,
2、而对象是一个具有多种属性的内容结构。
实例都是对象,而对象不全是实例。
Js里面没有类(ES6以前)的语法,所以类的概念就通过创造一个对象来实现。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式