JavaScript对象直接量3种创建对象方式

xiaoxiao2021-02-28  71

本文主要介绍JavaScript对象直接量3种创建对象方式。

以下三种方式创建的对象,达到的效果等效

方式一

var fun2 = function() { return { name: 'kancy', play: function() { alert(this.name); }, address: {} }; }; console.log(typeof fun2); //function console.log(typeof fun2()); //object console.log(typeof fun2().name); //string //console.log(typeof fun2().name()); // 错误:"Uncaught TypeError: string is not a function" console.log(typeof fun2().play); //function console.log(typeof fun2().play()); //undefined,因为没有return console.log(typeof fun2().address); //object //console.log(typeof fun2().address()); // 错误:"Uncaught TypeError: object is not a function"

方式二

var fun4 = function() { this.name= 'kancy'; this.play= function() { alert(this.name); }, this.address={ } return this; //一定要加上return,否则和其他两种方式效果不同 }; console.log(typeof fun4); //function console.log(typeof fun4()); //object console.log(typeof fun4().name); //string console.log(typeof fun4().play); //function console.log(typeof fun4().play()); //undefined,因为没有return console.log(typeof fun4().address); //object var q1 = new fun4(); q1.name="q1"; console.log(q1.name); q1.name="q2"; var q2 = new fun4(); console.log(q2.name);

方式三

var fun5 = function() { var obj ={}; obj.name= 'kancy'; obj.play= function() { alert(this.name);//等同于alert(obj.name); }, obj.address={ } return obj; }; console.log(typeof fun5); //function console.log(typeof fun5()); //object console.log(typeof fun5().name); //string console.log(typeof fun5().play); //function console.log(typeof fun5().play()); //undefined,因为没有return console.log(typeof fun5().address); //object
转载请注明原文地址: https://www.6miu.com/read-83433.html

最新回复(0)