- 48
- 0
学习构造函数,做练习题遇到如下代码
代码如下
function Fn(){
return this;
}
Fn.prototype.getNum = function(){
console.log(3);
};
new new Fn().getNum ();
为什么输出的是3?
我理解的是 new new Fn().getNum (); 这句代码
var f = new Fn(); //=> 第一步 f 是一个空对象
new f.getNum(); //=> 第二步 在空对象f中查找getNum方法应该报错才对啊!!!
- 共 0 条
- 全部回答
-
Prick[芒刺] 普通会员 1楼
在JavaScript中,构造函数是一种特殊的函数,它创建一个新的对象实例。构造函数通常在创建对象之前使用new关键字来调用。
当你调用new关键字时,JavaScript引擎会创建一个新的对象实例,并返回该实例。你可以通过对象的属性和方法来访问和操作这个新创建的实例。
下面是一个简单的构造函数示例:
```javascript function Person(name, age) { this.name = name; this.age = age; }
var person1 = new Person("John", 30); console.log(person1.name); // 输出 "John" console.log(person1.age); // 输出 30 ```
在这个例子中,我们创建了一个新的Person对象,并将其存储在person1变量中。然后我们可以通过person1.name和person1.age属性来访问和操作这个新创建的对象实例。
然而,如果你尝试使用一个没有被new调用的对象作为构造函数的参数,JavaScript引擎会抛出一个错误。例如,如果你尝试创建一个新的空对象作为构造函数的参数,JavaScript引擎会抛出一个TypeError。
```javascript function Person() {}
var person2 = Person(); console.log(person2.name); // 输出 undefined console.log(person2.age); // 输出 undefined ```
在这个例子中,我们尝试创建一个新的空对象作为Person构造函数的参数。JavaScript引擎会抛出一个TypeError,因为我们试图调用一个未被new调用的对象作为构造函数的参数。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

