`

面向对象的Js-JavaScript的特点

阅读更多

1. JavaScript灵活性
用不同方式定义方法:
1. 使用方法定义的方式
function startAnimation() {
  ...
}

function stopAnimation() {
  ...
}
2. 使用原形方式
var Anim = function() {
  ...
};
Anim.prototype.start = function() {
  ...
};
Anim.prototype.stop = function() {
  ...
};

var myAnim = new Anim();
myAnim.start();
...
myAnim.stop();
3. 使用另一种不同的方式
var Anim = function() {
  ...
};
Anim.prototype = {
  start: function() {
    ...
  },
  stop: function() {
    ...
  }
};
4. 为Function类添加方法用于声明方法
Function.prototype.method = function(name, fn) {
  this.prototype[name] = fn;
};

var Anim = function() {
  ...
};
Anim.method('start', function() {
  ...
});
Anim.method('stop', function() {
  ...
});
5. 链式调用
Function.prototype.method = function(name, fn) {
    this.prototype[name] = fn;
    return this;
};

var Anim = function() {
  ...
};
Anim.
  method('start', function() {
    ...
  }).
  method('stop', function() {
    ...
  });
2. 弱类型语言
在JavaScript中,定义变更时不必声明其类型。并不意味着变更没有类型,一个变量可以属于几种类型之一,这取决于其包含的数据。
JavaScript中有五种原始值:Undefined,Null,Boolean,Number,String
Undefined数据类型的值只有一个:undefined
  在js中如果只声明了一个引用,没有值,那么它的值默认就是undefind.
Null数据类型的值只有一个:null
Boolean数据类型的值只有两个:true,false
Number任何整数、浮点值都是在number里的值
typeof的返回值有五个:undefined,boolean,number,string,object
null与undefined的关系:undefined实际上从null派生而来
    alert(null == undefined);
对于函数定义中的变量来说,加var表示局部变量,不加var表示全局变量
强制转换有三种:Boolean(value),Number(value),String(value)

String s = ‘s’  alert(typeof s) string   // 是原始值,放在栈里
String s = new String(‘s’);  alert(typeof s) object // 对象,放在堆里

3. 函数
在JavaScript中,函数是一等对象。它们可以存储在变更中,可以作为参数传给其它函数,可以作为返回值从其它函数传出,还可以在运行时进行构造。
可用function() {..}这样的语法创建匿名函数。它们没有函数名,但可以被赋给变量
(function() {
  var foo = 10;
  var bar = 2;
  alert(foo * bar);
})();

(function(foo, bar) {
  alert(foo * bar);
})(10, 2);

var baz = (function(foo, bar) {
  return foo * bar;
})(10, 2);
4. 对象的易变性(晚绑定)
早绑定:是指在实例化对象之前定义它的特性和方法,这样编译器或解释程序就能提前转换机器代码。
晚绑定:指的是编译器或解释程序在运行前,不知道对象的类型。使用晚绑定,无需检查对象的类型,只需要检查对象是否支持特性和方法即可
JavaScript的对象具有易变性。这意味着能使用一些在大多数别的语言中不能使用的技术,例如为函数加属性:
function displayError(message) {
  displayError.numTimesExecuted++;
  alert(message);
};
displayError.numTimesExecuted = 0;
上面例子意味着你可以对先前定义的类和实例化的对象进行修改;
// 定义一个person类
function Person(name, age) {
  this.name = name;

  this.age = age;
}

// 定义其方法
Person.prototype = {
  getName: function() {
    return this.name;
  },
  getAge: function() {
    return this.age;
  }
}

 // 实例化对象
var alice = new Person('Alice', 93);
var bill = new Person('Bill', 30);

// 修改类,再为其添加一个方法
Person.prototype.getGreeting = function() {
  return 'Hi ' + this.getName() + '!';
};

// 修改特定的实例
alice.displayGreeting = function() {
  alert(this.getGreeting());
}

var o = new Object();

o.name = "langsin";

alert(o.name);

delete o.name;

alert(o.name);

分享到:
评论

相关推荐

    javascript面向对象编程--传智播客--蔡世友

    javascript面向对象编程--传智播客--蔡世友

    JavaScript面向对象编程--继承.mht

    JavaScript面向对象编程--继承.mht,JavaScript面向对象编程--继承.mht,JavaScript面向对象编程--继承.mht,JavaScript面向对象编程--继承.mht

    面向对象JavaScript精要(英文原版pdf)

    ### 面向对象JavaScript精要 #### 一、书籍概览 本书《面向对象JavaScript精要》由Nicholas C. Zakas编写,是面向对象编程领域中的权威指南之一,尤其针对JavaScript这门语言。作者深入浅出地介绍了面向对象编程的...

    Javascript面向对象编程.

    面向对象编程(Object-Oriented Programming,OOP)是编程的一种重要范式,JavaScript也完全支持这一特性,尽管它并非一种传统的静态类型语言。这篇博客文章可能详细讨论了如何在JavaScript中实现面向对象编程。 在...

    02-js面向对象考核-tab栏案例.zip

    在这个"02-js面向对象考核-tab栏案例"中,我们可以深入探讨JavaScript面向对象编程在实际项目中的应用,尤其是如何使用它来实现tab栏切换功能。 首先,让我们理解面向对象的基本概念。在JavaScript中,对象是键值对...

    面向对象JavaScript开发

    JavaScript,作为一种广泛应用于Web开发的动态脚本语言,最初被设计为简单的客户端脚本语言,但随着技术的发展,它已经发展出了丰富的面向对象编程(OOP)特性。面向对象JavaScript开发是现代Web开发中不可或缺的一...

    全方位理解Javascript面向对象-js族谱.png

    全方位理解Javascript面向对象-js族谱

    js 面向对象实例

    综合以上知识,`js 面向对象实例`涵盖了JavaScript中的面向对象编程基础,以及如何将这些概念应用到HTML5 Canvas的实践中。通过学习和实践这个实例,你不仅可以理解JavaScript的OOP机制,还能掌握如何利用Canvas API...

    原生js-面向对象-特效-幻灯片片.zip

    这个“原生js-面向对象-特效-幻灯片片.zip”文件包含了一个实现这一功能的代码示例。下面将详细解释相关知识点。 1. **原生JavaScript**:原生JavaScript是指不依赖任何库或框架,直接使用JavaScript语言核心语法...

    面向对象javascript

    面向对象JavaScript教程 面向对象JavaScript是一种编程范式,它将JavaScript脚本编写转换为面向对象的思想。面向对象的JavaScript开发可以极大地提高开发效率和代码健壮性。 面向对象的JavaScript的特征包括: * ...

    0原生js-面向对象-无缝轮播图.zip

    本项目"0原生js-面向对象-无缝轮播图.zip"旨在通过原生JavaScript和面向对象编程思想,创建一个无缝轮播图特效。无缝轮播图是一种常见的网页元素,它为用户提供了一种优雅的方式来展示多张图片或内容,让它们看起来...

    javascript 经典面向对象设计

    ### JavaScript经典面向对象设计 #### 标题与描述解析 标题“JavaScript经典面向对象设计”指出了本书的主要内容是关于如何使用面向对象编程(OOP)原则和技术来编写高质量、可扩展且可重用的JavaScript应用程序及...

    JavaScript面向对象编程指南.pdf

    JavaScript作为一门浏览器语言的核心思想;面向对象编程的基础知识及其在... 《JavaScript面向对象编程指南》着重介绍JavaScript在面向对象方面的特性,展示如何构建强健的、可维护的、功能强大的应用程序及程序库

    JAVASCRIPT 面向对象编程精要

    ### JavaScript面向对象编程精要 #### 一、引言 JavaScript是一种灵活且强大的脚本语言,它虽然起源于一种简单的浏览器脚本语言,但随着时间的发展,JavaScript已经成为了一种功能全面的编程语言,尤其是在Web开发...

    JavaScript面向对象编程指南

    《JavaScript面向对象编程指南》内容包括:JavaScript作为一门浏览器语言的核心思想;面向对象编程的基础知识及其在JavaScript中的运用;数据类型、操作符以及流程控制语句;函数、闭包、对象和原型等概念,以代码...

    javascript面向对象编程(中文).pdf

    ### JavaScript面向对象编程知识点概述 #### 一、现代JavaScript编程概览 - **JavaScript的演进**:自诞生以来,JavaScript经历了从一个简单的脚本语言到现今被广泛应用于构建复杂应用的强大编程语言的过程。它的...

    JavaScript面向对象编程指南 pdf

    面向对象编程(Object-Oriented Programming,OOP)是JavaScript中的一个重要概念,它允许开发者以更加模块化、可复用的方式组织代码。下面将详细探讨JavaScript面向对象编程的基本原理、特性以及实际应用。 1. **...

Global site tag (gtag.js) - Google Analytics