1)您在定义函数时不使用new
,而是new
在您调用函数以创建新对象时使用。
2)如果new
在定义函数时使用,则意味着它将立即触发。这有时会很方便…………但这确实不是初学者应该学习的方式。此外,这种技术更被接受的版本称为 IIFE(立即调用函数表达式),它看起来像
(function () {
/* function stuff in here */
}());
代替
new function () { /* function stuff in here */ }
如果您尝试以这种方式定义函数,稍后尝试使用它时会出现错误(因为未定义)。
这里有两种实际定义函数的方法:
var sayHi = function () { console.log("Hi!"); };
和
function sayHello () { console.log("Hello"); }
这些都不用new
。
为了给他们打电话,让他们做他们的工作,你不需要使用.call()
.
.call()
会起作用,但它有一个特殊的用途,你在很长一段时间内都不需要。
您需要做的就是:
sayHello();
sayHi();
当您想要制作某种对象时,应使用 New。
在 JavaScript 中创建对象非常简单:
var obj = {};
var person = { name : "Bob" };
person.name; // "Bob"
person.age = 32;
使用对象非常非常容易。
但是在其他编程语言中,您需要classes
的就像对象的蓝图一样。
在 JS 中,你可以创建一个这样的类:
function Person (name, age) { this.name = name; this.age = age; }
然后像这样使用它:
var bob = new Person("Bob", 32);
bob.name; // "Bob";
bob.age; // 32;
看看我放哪里了new
?
我用了一个造人的功能,我说我想bob
成为一个new Person
.
但同样,在 JS 中,这可以很简单:
var mike = { name : "Mike", age : 20 };
不必构建函数,不必使用new
. 它刚刚奏效。