当前位置: 移动技术网 > IT编程>开发语言>JavaScript > JS使用new操作符创建对象的方法分析

JS使用new操作符创建对象的方法分析

2019年07月19日  | 移动技术网IT编程  | 我要评论

本文实例讲述了js使用new操作符创建对象的方法。分享给大家供大家参考,具体如下:

在编写js代码时,我们有时会需要使用函数来模拟java中的类,并用它来产生对象,在定义了一个构造函数之后我们需要使用new操作符来调用调用函数才能得到我们想要的对象。例如:

<script>
function constructor(name){
this.name = name
}
var person1 = constructor("张三");//undefined
var person2 = new constructor("张三");//得到一个对象{name:"张三"}
console.log(person1);
console.log(person2);
</script>

运行结果:

如果我们不使用new操作符调用函数,就只会简单的执行函数,并把函数的返回值赋给person1,所以上面的例子中person1的值是undefined,.

如果我们使用new操作符调用构造函数,做了哪些事情呢?

1.构造函数没有返回值

使用new操作符调用函数,会隐式的创建一个对象(我们这里称这个对象为obj),这个对象obj是连接到构造函数的原型上的,即obj会继承构造函数原型上的属性方法,并且构造函数中的this也被绑定到了这个对象上,执行完成后这个对象会被作为返回值返回。

2.构造函数有返回值(这种情况比较少,至少我没用过)

new出来的值由返回值的prototype而定

例如:

function constructor(name){
this.name = name
return this.name;
}
var person = new constructor("123");//constructor {name: "123"};object,因为基本类型的prototype都是object
function constructor(name){
this.name = name
return new string(this.name);
}
var person = new constructor("123");//string {0: "1", 1: "2", 2: "3", length: 3, [[primitivevalue]]: "123"},
console.log(person);

运行结果:

感兴趣的朋友可以使用在线html/css/javascript代码运行工具:测试上述代码运行效果。

更多关于javascript相关内容还可查看本站专题:《javascript面向对象入门教程》、《javascript错误与调试技巧总结》、《javascript数据结构与算法技巧总结》、《javascript遍历算法与技巧总结》及《javascript数学运算用法总结

希望本文所述对大家javascript程序设计有所帮助。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网