十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这段代码很简单,你应该是不明白两个运行结果不一样的原因,我只说明运行结果不同的原因。
成都创新互联公司服务项目包括福贡网站建设、福贡网站制作、福贡网页制作以及福贡网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,福贡网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到福贡省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
首先你要明白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。
关于js中实例和对象的解释如下:
比如定义persion如下:
var person = new Object();
var person = {};
JS 是基于原型的面向对象语言, 所有数据都可以当作对象处理,所以 person 是对象, 可以把它当作是 Object 的实例. 当然, 一切都是对象。
第二个采用对象字面量的方式生成的person也是如此。
然而它内部没有调用new Object(),而是采用JSON的初始化方式:
将现有的引用指向person。
实例和对象的区别,从定义上来讲:
1、实例是类的具象化产品,
2、而对象是一个具有多种属性的内容结构。
实例都是对象,而对象不全是实例。
Js里面没有类(ES6以前)的语法,所以类的概念就通过创造一个对象来实现。
var gaga= new Gaga( "尜尜",null,"黑色");这样就是一个对象的实例化;
实例化对象,其实就是创建对象过程;
要用一个类中的一个方法。如果这个类是静态类,那么ok,可以直接调用这个方法。
可是如果这个类不是静态类呢?
就需要用对象来引用这个方法了。那么对象如何来呢?就需要new一下了。
例:B类要调用,A类中的 gaga()方法。
那么在调用干这个方法之前,必须要要创建A的对象。
A a = new Gaga();
a.Gaga();