Function 2——JS学习笔记2015-6-30(第71天)

今天将是JS基础视频教程学习的一个 转折点,因为我看到第八章的时候,发现很多东西自己以及没法及时的理解和掌握了,我决定夯实基础,一方面通过一些实例来帮助巩固基础

(通过网上的实例和老师留下的作业),另外一个方面,我觉得接受师父和知乎网友的建议,看完高程3的前6章,然后去看下javascript DOM编程艺术。期待自己早日跨过基础阶段

的学习,学习JS是一个长期积累的过程,我一定会坚持下去。

高程3:function 类型——函数内部属性:

   1、arguments 是一个类数组的对象, 包含着传入函数中的所有参数;

     arguments还有一个callee的属性,该属性是一个指针,指向拥有这个arguments对象的函数;

  2、this,      this应用的是函数据以执行的环境对象  ( 妙味的老师是这么理解的:this是指调用当前函数或方法的那个对象)

实例:

 1 window.color = ‘red‘;
 2 var o = {
 3   color: ‘blue‘
 4 };
 5 function sayColor() {
 6   alert(this.color);
 7 }
 8 sayColor();  // red   因为这里sayColor函数是在全局作用域中定义的,此时调用函数的就是window对象
 9 o.sayColor = sayColor;
10 o.sayColor(); // blue  o调用了sayColor函数,所以this指的是o,可以这么去理解;

函数的属性和方法:

length和prototype(后面再提)

length是指表示函数希望接收命名参数的个数

每个函数都包含2个非继承而来的方法 apply()和call()   他们的用途都是在特定的作用域中调用函数,实际上等于设置函数体内this对象的值。

每个函数继承的 toLocaleString() 和 toString()方法始终都返回函数的代码 valueOf()也同样只返回函数代码(返回的格式会因为浏览器不同而异)

length实例:

function sayName(name) {
  alert(name);
}
function sum(num1, num2) {
  return num1 + num2;
}
function sayHi() {
  alert(‘hi‘);  //  弹出字符串一定要加上引号
}
alert(sayName.length); // 1
alert(sum.length);     // 2
alert(sayHi.length);   // 0

apply() 和 call() 真正的用武之地在于 能够扩充函数,赖以运行的作用域;(这一块暂时没有理解)

时间: 2024-11-05 02:24:25

Function 2——JS学习笔记2015-6-30(第71天)的相关文章

【转】Backbone.js学习笔记(二)细说MVC

文章转自: http://segmentfault.com/a/1190000002666658 对于初学backbone.js的同学可以先参考我这篇文章:Backbone.js学习笔记(一) Backbone源码结构 1: (function() { 2: Backbone.Events // 自定义事件 3: Backbone.Model // 模型构造函数和原型扩展 4: Backbone.Collection // 集合构造函数和原型扩展 5: Backbone.Router // 路由

JS学习笔记-OO疑问之封装

封装是面向对象的基础,今天所要学习的匿名函数与闭包就是为了实现JS的面向对象封装.封装实现.封装变量,提高数据.系统安全性,封装正是面向对象的基础. 匿名函数 即没有名字的函数,其创建方式为 function(){...} 单独存在的匿名函数,无法运行,可通过赋值给变量调用或通过表达式自我执行来实现运行. 1.赋值给变量为一般的函数使用方式 var run = function(){ return '方法运行中'; }; alert(run()); 2.通过表达式自我执行 (function(a

JS学习笔记-OO疑问之对象创建

问一.引入工厂,解决重复代码 前面已经提到,JS中创建对象的方法,不难发现,基本的创建方法中,创建一个对象还算简单,如果创建多个类似的对象的话就会产生大量重复的代码. 解决:工厂模式方法(添加一个专门创建对象的方法,传入参数避免重复) function createObject(name,age){ var obj =new Object(); //创建对象 obj.name = name; obj.age = age; obj.run = function(){ return this.nam

js学习笔记知识点

AJAX用法安全限制JSONPCORS面向对象编程创建对象构造函数原型继承class继承 AJAX 用法 AJAX不是JavaScript的规范,它只是一个哥们"发明"的缩写:Asynchronous JavaScript and XML,意思就是用JavaScript执行异步网络请求 在现代浏览器上写AJAX主要依靠XMLHttpRequest对象: 'use strict'; function success(text) { var textarea = document.getE

JS学习笔记--仿手机发送内容交互

学习JS笔记----记录上课中学习的知识点,分享下老师教的内容: 1.html内容 <div id="box"> <div id="message"> <!--<p class="left"> <img src="img/136.jpg" /> <span>这是第一句话</span> </p> <p class="righ

JS学习笔记-JSON

JSON(JavaScriptObject Notation)-JS对象表示法,是JavaScript的一个严格子集,它是一种开发式和基于文本的数据交换格式,因此JSON并不是JS独有,其他很多语言也可以对JSON进行解析和序列化. 特点: 1.轻量级-易于阅读和编写,同时易于及其解析和生成 2.可表示类型: (1)简单值:字符串.数值.布尔值.null,不支持特殊值JS中的undefined (2)对象 { "user" : "Admin", "age&

【JS学习笔记】js中关于传地址的问题

我觉得初学者应该会遇到很多这样的问题 条件1.不想定义全局变量的时候 条件2.定义了外围变量却又要引用并且修改其中内容的时候 以下转一篇文章 -------------------------------------------------------------------------------------------------------------------------------------------------------- 很多人,包括我,受书本知识消化不彻底的影响,认为 J

JS学习笔记-数组

ECMAScript中没有提供类和接口等的定义,但它却是一门面向对象的语言,由于它能够通过其它 方式实现类似高级语言的面向对象功能,这些内容将在后面的文章中进行一步步的总结.此篇仅对JS中对象作简要说明,重点汇总一些类似于对象的数组的经常用法. 对象 创建 上篇提到创建对象的两种方式: 使用new运算符创建Object var obj = new Object(); 使用字面量方式创建 var   obj = {}; 这里值得注意的是在使用字面量(常量)创建Object时不会调用构造函数. 属性

Node.js学习笔记【1】入门(服务器JS、函数式编程、阻塞与非阻塞、回调、事件、内部和外部模块)

笔记来自<Node入门>@2011 Manuel Kiessling JavaScript与Node.js Node.js事实上既是一个运行时环境,同时又是一个库. 使用Node.js时,我们不仅仅在实现一个应用,同时还实现了整个HTTP服务器. 一个基础的HTTP服务器 server.js:一个可以工作的HTTP服务器 var http = require("http"); http.createServer(function(request, response) { r