`

Javascript 对象 (三)

阅读更多

This

Js代码 复制代码
  1. var hero = {   
  2.    name : 'Rafaelo',   
  3.    sayName : function(){   
  4.       return this.name;      
  5.   }   
  6. }   
  7. hero.sayName();//Rafaelo  
var hero = {
   name : 'Rafaelo',
   sayName : function(){
      return this.name;   
  }
}
hero.sayName();//Rafaelo

 this的意思就是这个对象的意思,关于this的复杂问题以后在讨论。

 

构造函数(Constructor Functions)

另一种创建对象的方式是用构造函数,直接看例子

Js代码 复制代码
  1. function Hero(){   
  2.   this.name ='Refaelo';   
  3. }  
function Hero(){
  this.name ='Refaelo';
}

var hero = new Hero();

hero.name;//Refaelo

这种方式的好处在于创建个对象的时候可以传入参数

Js代码 复制代码
  1. function Hero(name){   
  2.     this.name = name;   
  3.     this.whoAreYou = function(){   
  4.         return this.name;   
  5.     }   
  6. }   
  7.   
  8. var hi = new Hero('nicholas');   
  9. hi.whoAreYou();//nicholas  
function Hero(name){
    this.name = name;
    this.whoAreYou = function(){
        return this.name;
    }
}

var hi = new Hero('nicholas');
hi.whoAreYou();//nicholas

 要注意的时候,不要丢点 new 操作符。。。

全局对象

上几节我们说过全局变量的事情,已经说过了我们要尽量避免使用全局变量,当我们学过对象的时候,我们在看看全局变量究竟怎么回事,其实全局变量就是全局对象一个属性了。如果主机的环境是web浏览器,全局变量就是window。

如果我们定义 var a = 1;

我们可以这么理解

  • 一个全局变量a
  • 做为window的一个属性a.我们可以这么调用window.a或者window['a']

再看看预定义函数的parseInt('123 m');我们可以写为window.parseInt('123 m');

 

constructor 属性

对象建立之后,后台有创建了个隐藏属性,constructor.

h2.constructor;//Hero(name)

因为constructor的属性是对函数的引用。如果你不关心h2对象是由什么创建的,而只关心创建一个新的对象和h2相似就用如下写法

Js代码 复制代码
  1. var h3 = h2.constructor('Nicholas');   
  2. h3.name ;//Nicholas  
var h3 = h2.constructor('Nicholas');
h3.name ;//Nicholas

 

我们来看看如下写法的意思

Js代码 复制代码
  1. var o = {};   
  2. o.constructor;//Object()   
  3. typeof o.constructor;//"functions"  
var o = {};
o.constructor;//Object()
typeof o.constructor;//"functions"

其实就是隐藏了 new Object() ,更深的层次应用以后几个教程在说明。

 

instanceof 操作符

用instanceof来判断对象是否是指定的构造函数创建的。

Js代码 复制代码
  1. function Hero(){   
  2. }   
  3. var h = new Hero();   
  4. var o = {};   
  5. instanceof Hero;//true   
  6. instanceof Object;//false   
  7. instanceof Object;//true  
function Hero(){
}
var h = new Hero();
var o = {};
h instanceof Hero;//true
h instanceof Object;//false
o instanceof Object;//true

 要注意的是instanceof 后面的是个引用 不是个函数 如错误写法 h instanceof Hero();//错误

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    第8节 JavaScript对象.rar

    第8节 JavaScript对象.rar第8节 JavaScript对象.rar第8节 JavaScript对象.rar第8节 JavaScript对象.rar第8节 JavaScript对象.rar第8节 JavaScript对象.rar第8节 JavaScript对象.rar第8节 JavaScript对象.rar第8节 ...

    Javascript 面向对象的JavaScript进阶

    Javascript 面向对象的JavaScript进阶 Javascript技术

    JavaScript对象笔记.rar

    什么是对象 简单点说,编程语言中的对象是对现实中事物的简化。例如,我们一个人就是一个对象,但是编程...在后面的JavaScript对象笔记中,记录了菜鸟在学习JavaScript对象的大多数资源,希望这些资源对你也有价值。

    JavaScript面向对象的支持

    JavaScript面向对象的支持 JavaScript面向对象

    JavaScript对象创建总结

    javascript对象创建方法总结,通过这些方法的总结,可以对对象有了更深一步的了解,也加深了对对象的巩固认识。

    JavaScript面向对象编程指南

    资源名称:JavaScript面向对象编程指南内容简介: Javascript是一种具有高度表达能力的、基于原型特性的、非常灵活的面向对象编程语言。《Javascript面向对象编程指南》着重介绍Javascript在面向...

    javascript对象大全

    javascript对象大全

    javascript对象转换成json

    支持将自身转换成json字符串输出

    JavaScript内置对象(ppt)

    JavaScript内置对象(ppt)JavaScript内置对象(ppt)JavaScript内置对象(ppt)JavaScript内置对象(ppt)JavaScript内置对象(ppt)JavaScript内置对象(ppt)JavaScript内置对象(ppt)JavaScript内置对象(ppt)...

    javaScript内置对象.doc

    javaScript内置对象,javaScript,javaScript内置对象,javaScript,javaScript内置对象,javaScript

    JavaScript对象模型

    JavaScript对象模型

    JavaScript内置对象相关介绍及用法

    JavaScript内置对象相关介绍及用法ppt JavaScript内置对象相关介绍及用法

    JavaScript面向对象编程指南.pdf

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

    04 第四章 JavaScript对象及初识面向对象.md

    04 第四章 JavaScript对象及初识面向对象.md

    javascript 对象操作作业题

    javascript 对象操作作业题,面向对象操作题

    JavaScript之Date对象(源代码)

    JavaScript之Date对象(源代码)JavaScript之Date对象(源代码)JavaScript之Date对象(源代码)JavaScript之Date对象(源代码)JavaScript之Date对象(源代码)JavaScript之Date对象(源代码)JavaScript之Date对象...

    深入浅出JavaScript对象模型

    JavaScript中的对象 ECMA262规范一直在强调,“ECMAScript是一种基于对 象(Object—Based)的语言,而不是传统的面向对象(Object— Oriented)的语言”。相信绝大多数人不会清楚这句话是什么意 思。我想我们可以把它...

    JavaScript之Math对象(源代码)

    JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象...

    精通JavaScript对象(math对象)

    JavaScript中的Math对象的与众不同之处在于,它是一个全局对象。在使用Math对象之前,既不需要将一个变量声明为Math对象,也不需要定义一个新的Math对象,JavaScript将自动地创建好Math对象,我们只须直接使用它即可...

Global site tag (gtag.js) - Google Analytics