自学js第十天:JS对象和this和执行上下文

复习数组基础方法 作用域 函数 小测试:
复习数组基础方法 作用域 函数 小测试>/*有两个数组 数组A 数组B数组A为固定初始数组 ['jojo','okko','张三','秃头','帅小伙']数组B为用户动态选择添加的值 [] ... 不确定需要 将数组B中前N 位添加到 数组A中 N = 7 - 数组A.length数组A 有限制长度 7例如 A:['jojo','okko','张三','秃头','帅小伙']B: ['你好','小脑斧','大西瓜','长得帅']输出: ['jojo','okko','张三','秃头','帅小伙','你好','小脑斧'];*/function fillArray(arrA, arrB) {var maxLen = 7;var arrALen = arrA.length;return arrA.concat(arrB.slice(0, maxLen - arrALen));}console.log(fillArray(['jojo', 'okko', '张三', '秃头', '帅小伙'], ['你好', '小脑斧', '大西瓜', '长得帅']));/*函数 作用域*/// console.log(x); // undefined// f1();// var x = 0;// function f1() {//f2();//var x = 10;//function f2() {//x = 20;//console.log(x); // 20//}// }// console.log(x); //0// console.log(a); //函数// function a() {//a = 20;// }// a();// console.log(a); //20// var a = 30;// console.log(a); // 30function f1() {var arr = [];//i for (var i = 0; i < 10; i++) { //0 1arr.push(function () {// 0 1return i; //0 1});console.log(arr[i]());//}// console.log(i); //10return arr;}console.log(f1()[0]()); //10// function f1() {//var x = 10; ////return function () {//return x;//}// }// f1()(); //10
JS之对象 :① obj.属性如果是字面量对象则可以直接obj.属性创建对象属性出来. ②如果是构造函数下的对象, 则obj.属性 如果内部构造函数没有该属性,则返回.
console.log(obj.a);//直接把a当成键名key了,然后去查询并输出对应的value,没有则返回undefined.console.log(obj['a']); //这里和上一行一样是指: 查询对象中的key属性a的value console.log(obj[a]); //而这里是指: 找a变量的的字面值作为键名key,然后再key输出对应的value,如果a变量未声明则报错,一般用于对象(for key in obj)遍历时使用.特定有变量key的模板
一.对象通俗概念:
什么是对象? 咱们要说的对象可不是 女朋友, 在这个世界上 任何具体事物都可以看做 对象
因为他们都有自己的特征、行为 。
车子 手机 猫 是对象吗? 这些都是整体的抽象一类class事物,只有具体特征和行为的事物才是对象 , 比如猫抽象类,我家的小黄猫具体对象 。小黄猫特征:颜色:黄色年龄:1岁 体重:5kg最爱:小鱼干名字: 橘子行为:吃饭 睡觉 伸懒腰 喵喵喵
2.是一门基于对象的语言 。
中 我们称为 对象 对象的概念也分广义和狭义:
广义对象上:中处处是对象
狭义对象上:指的是我们通过{ }字面量创建的对象 。
JavaScript的对象是无序属性的集合 。①其属性可以包含基本值、对象或函数 。对象就是一组没有顺序的值 。我们可以把JavaScript中的对象想象成键值对,其中值可以是数据和函数 。②对象的行为和特征特征---属性行为---方法事物的特征在对象中用"各种属性"来表示.事物的行为在对象中用"函数方法"来表示 。
3.对象属性 和 对象方法:
如果一个变量属于一个对象所有,那么该变量就可以称之为该对象的一个属性,属性一般是名词,用来描述事物的特征如果一个函数属于一个对象所有,那么该函数就可以称之为该对象的一个方法,方法是动词,描述事物的动作行为和功能