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

本文主要介绍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	


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值