JS中函数的四种创建方法
程序员文章站
2022-06-24 16:45:38
知道的四种创建方法:[1] 字面量创建 简单快速,不适合批量的创建对象var o1 = {}; //空对象 var o2 = { name: "zs", age: 19 }[2] 内置构造函数(Object)var personA = new Object(); //空对象 var obj1 = {} personA.name = "zs"; personA.age = 100;...
知道的四种创建方法:
[1] 字面量创建 简单快速,不适合批量的创建对象
var o1 = {}; //空对象
var o2 = {
name: "zs",
age: 19
}
[2] 内置构造函数(Object)
var personA = new Object(); //空对象 var obj1 = {}
personA.name = "zs";
personA.age = 100;
personA.price = 5000;
[3] 工厂函数来创建 : 对内置构造函数(Object)方式封装,解决了代码复用的问题
问题:无法区分对象的类型
function createPerson(name, age, price) {
var personA = new Object();
personA.name = name;
personA.age = age;
personA.price = price;
personA.showName = function() {
console.log("姓名:" + this.name);
}
return personA;
}
var d1 = createDog("wc", 3, 20000);
console.log(d1);
[4]自定义构造函数:是对工厂函数进行封装(提倡)
(1) 函数的名字首字母大自定义构造函数:是对工厂函数进行封装写(约定-建议)
(2) 在调用的时候,使用new关键字来调用
/* 细节: */
function Person(name, age, price) {
/* 当使用new来调用函数的时候,内部会执行下面的代码 */
/* 001-默认会创建一个空对象 */
/* var o = new Object() */
/* 002-默认会把这个空对象赋值给this */
/* this = o; */
/* 003-设置this的原型对象指向构造函数的原型对象 */
/* this.__proto__ = Person.prototype */
/* 004-通过this来添加属性和方法 */
this.name = name;
this.age = age;
this.price = price;
this.showName = function() {
console.log("姓名:" + this.name);
};
/* 005-在函数的最后默认总是会把this返回 */
/* return this */
}
var person1 = new Person("zs", 19, 300);
var person2 = new Person("ls", 34, 100);
console.log(person1);
console.log(person2);
本文地址:https://blog.csdn.net/Frank_yzb123123/article/details/111043829