js知识

1.积累实例


<p id="demo"></p>

<script>

function createComparisonFunction(propertyName){
	return function(object1,object2){
	alert(object1);
		var value1=object1[propertyName];
		var value2=object2[propertyName];
		if(value1<value2){
		return -1;
		}else if(value1>value2){
			return 1;
		}else{
			return 0;
		}
	};
}

var data=[{name:"Zachary",age:28},{name:"Nich",age:29},{name:"Aich",age:19}];
data.sort(createComparisonFunction("name"));
//alert(data[0].name);
//arguments的主要用途是保存函数参数,但是这个对象还有一个名叫callee的属性,该属性是一个指针,
//指向拥有这个arguments对象的函数,可以减少耦合性
function factorial(num){
	if(num<1){
		return 1;
	}else {
		return  num*arguments.callee(num-1);
	}
}
document.getElementById("demo").innerHTML = factorial.call(factorial, 10);

</script>



ECMAScript中有两种属性:数据属性和访问属性。

1.数据属性:

数据属性包含一个数据值的位置,在这个位置可以读取和写入值











var book={};
Object.defineProperties(book,{
		_year: {
			value: 2016
		},
		edition: {
			value:1
		},
		year:{
			get:function(){
				return this._year;
			},
			set:function(newValue){
				if(newValue>2015){
					this._year=newValue;
					this.edition+=newValue-2015;
				}
			}
		}
	}
);
var descriptor=Object.getOwnPropertyDescriptor(book,"_year");
alert(descriptor.value); //2016
alert(descriptor.configurable); //false
alert(typeof (descriptor.get)); //"undefined"

var descriptor1=Object.getOwnPropertyDescriptor(book,"year");
alert(descriptor1.value); //undefined
alert(descriptor1.enumerable); //false
alert(typeof (descriptor1.get)); //"function"



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值