这三个函数有什么区别?第二个函数中的 new 运算符有什么用?为什么应该使用第一个函数而不是第三个函数?
第一
var person = function(name){
this.name = alert(name);
};
var k = new person('kkkk');
var j = new person('jjjj');
第二
var person2 = function(name){
person2.name = alert(name);
};
var k2 = new person2('kkkk2');
var j2 = new person2('jjjj2');
第三
var person3 = function(name){
person3.name = alert(name);
};
var k3 = person3('kkkk3');
var j3 = person3('jjjj3');
最佳答案
alert
实际上,检查效果非常困难,因此在我的解释中,我将假设 alert(name)
实际上是name
。 ( alert
返回 undefined
,而不是其输入)
第一个创建了一个可以像类一样使用的函数。然后您将其与 new
一起使用并制作了两个物体,k
和j
。 this
这样做是为了让您可以访问 k.name === 'kkkk'
这样的名称和j.name === 'jjjj'
.
第二个与第一个类似,但是k2.name
和j2.name
是undefined
。您可以访问person2.name
,但这仅等于您上次实例化它时的名称;因此,person2.name === 'jjjj2'
.
第三个与第二个类似,但不滥用 new
。 k3
和j3
是undefined
,如果您尝试访问k3.name
,您将收到错误消息和j3.name
。同样,您将能够访问最后传递给 person3
的值。与 person3.name
.
关于javascript - 这些功能之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9050216/