{
//第七题
function showMoney(){
return this.money;
}
var personA = new Object();
var personB = new Object();
personA.money = '100';
personB.money = '150';
personA.showMoney = showMoney;
personB.showMoney = showMoney;
// console.info(personA.showMoney());
// console.info(personB.showMoney());
}
{
//第八题
/**
为了判断一个对象是否包含自定义属性而不是原型链上的属性,可以使用hasOwnProperty,但是如果你的对象也申明了hasOwnProperty属性的话,
我们需要使用继承自 Object.prototype 的 hasOwnProperty 方法。
*/
var money = {
hands:2,
legs:2,
heads:1,
job:'PHP'
}
//在原型链上挂一个方法
if(typeof Object.prototype.clone == 'undefined'){
Object.prototype.yyt = function(){
console.info('...');
}
}
//直接遍历
for(var j in money){
console.info(j,':',money[j]);
}
console.info('------------------------我是分割线------------------------------');
//利用hasOwnProperty
for(var i in money){
if(money.hasOwnProperty(i)){
console.info(i,':',money[i]);
}
}
}
console.info('------------------------我是分割线------------------------------');
{
//第九题
function getNthFibonacci(count){
if(count < 1){
return 1;
}
return getNthFibonacci(count -1) + getNthFibonacci(count - 2);
}
console.info(getNthFibonacci(10))
}
console.info('------------------------我是分割线------------------------------');
{
//第十题
var data = {a:1,b:2,d:4};
console.info(data) //{a:1,b:2,d:4}
console.info(Object.keys(data)) //["a","b","d"]
let arr = Object.keys(data).filter(function(x){
return data[x] > 2
})
console.info(arr)
/**
解析:
filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。
*/
}
console.info('------------------------我是分割线------------------------------');
{
//第十一题
function obj(name){
if(name){
this.name = name; //-1-//
}
return this;
}
obj.prototype.name = "name2" //-2-//
var a = obj("name1");
var b = new Object();
a.name = "name1";
b.name = "name2";
}
console.info('------------------------我是分割线------------------------------');