`

javascript 创建对象的写法

阅读更多
第一种方法:

var obj={};

example:

var so = { "name":"what?",
           "action":"study & think",
           "doo": function(){
                console.log(this.name+" I am doing "+this.action);
            }
          };

so.doo();   //output:  what? I am doing study & thinking

//add new function to the class
so.dee=function(){
    console.log(this.name+"hwllo: I am stronger " + this.action);
}
so.dee();   //output:  what? hwllo: I am stronger study & think

也可以

var so = new Object();
so = { ...}  //同上

用此方式实现 Stack 类

var Stack = { "idx":0,
           "store": new Array(200),
           "push": function(comp){
                this.store[this.idx]=comp;
                this.idx++;
            },
            "pop": function(){
                var re=this.store[this.idx-1];
                this.idx--;
                return re;
              
            },
            "isEmpty":function(){
            if(this.idx==0) return true;
            return false;
            }
          };

Stack.push("aaaa");
Stack.push("</definition>\n");

这个必须直接调用,不能用 new Stack(),来定义定义实例。

// 第二种方法  
就好像 java 里的类与实例 ,不可以引用类(myclass)的值 ,只可以引用实例 (st1) 的值, prototype.xx 就好像是Java 里的 public ,var xxx 就是父类的私有变量, this.xxx 就是父变量,可以传递给实例



var myclass = function(){
    this.name="what";  //必须用this,假如想调用初始变量值的话
    var action="who do who";
    var firstAction=function(){
        console.log("inner class"+name);
    }
}
myclass.prototype.doAction = function(name){
    console.log(name+"==:)");
}
myclass.prototype.name="what name";

var st1 = new myclass();

console.log(myclass.name);  //output: undefined  ,
console.log(st1.name);     // output: what
st1.doAction(33);          // output: 33=:)


如果 已经在类中定义 this.xxx ,后面又用 prototype.xxx 定义不会生效

如 var myclass =function(){
   this. name="good";
}

myclass.prototype.name="what";

var st1=new myclass();
console.log(st1.name);  // good

所以定义类,要么定义一个空function(), 然后用 prototype.xx 增加属性和函数
要么全部用 this.xxx 定义, 这样就不会产生冲突
分享到:
评论

相关推荐

    javascript如何创建对象

    JavaScript创建对象的方法主要有以下几种: 一、直接创建 直接创建是通过new Object()来创建一个新的空对象,然后逐步给这个对象添加属性和方法。例如,创建一个名为person1的对象,并添加name、gender属性,以及一...

    Javascript面向对象编程.

    4. **类(Class)**:ES6引入了类语法糖,使得JavaScript的面向对象更加符合传统面向对象语言的写法,但实际上,这些“类”仍然基于原型实现。 ```javascript class Person { constructor(name) { this.name = ...

    JavaScript创建对象的写法

    最简单的对象JavaScript的一对花括号{}就可以定义一个对象,这样的写法实际上和调用Object的构造函数一样 代码如下:var obj={};var obj2=new Object(); 这样构建出来的对象仅仅包含一个指向Object的prototype的指针...

    JavaScript面向对象编程指南(第2版).rar

    1. 基础对象创建和属性操作:理解如何创建对象,包括字面量语法和构造函数,以及访问和修改对象的属性。 2. 构造函数与原型链:详细解释构造函数的工作原理,以及如何利用原型实现继承。 3. `new` 关键字的作用:...

    javascript对象参考手册

    1. **对象创建**:JavaScript提供了多种创建对象的方法,如字面量语法`{key: value}`、构造函数(如`new Object()`)以及对象解构。此外,ES6引入了类(class)和对象初始化器(Object.create),提供更简洁的面向...

    在javascript中创建对象的各种模式解析_.docx

    在JavaScript中,创建对象是面向对象编程的基础。本文主要解析了JavaScript中几种常见的创建对象的模式,包括工厂模式、构造函数模式、原型模式以及它们的组合和动态原型模式。 首先,JavaScript是一门基于原型的...

    javascript对象的创建和访问_.docx

    这种写法使得创建对象更为直观,尤其是当有很多属性时。需要注意的是,属性名如果无特殊字符,可以省略引号。 4. **工厂函数**: 当需要创建大量相似对象时,可以使用工厂函数,它是一个返回新对象的普通函数: ...

    javascript创建命名空间的5种写法_.docx

    ### JavaScript 创建命名空间的五种方法 #### 一、通过函数创建命名空间 在JavaScript中,使用函数创建命名空间是一种常见的做法。这种方法主要是利用函数来封装命名空间内的成员,包括属性和方法。这种方式的优点...

    javascript创建命名空间的5种写法__1.docx

    以下是五种创建JavaScript命名空间的方法: 1. **通过函数(function)创建** 这种方法通常涉及定义一个函数,然后在函数内部声明变量和方法。例如: ```javascript var namespace = namespace || {}; namespace....

    107个常用Javascript语句参数写法

    虽然在JavaScript中,字符串通常是原始类型,但也可以通过构造函数`new String()`创建字符串对象。 ### 36. 字符串大小写转换:`.toUpperCase()`和`.toLowerCase()` 这两个方法用于转换字符串的大小写。 ### 37. ...

    100多个很有用的javascript函数以及基础写法集合

    JavaScript 函数和基础写法大集合 JavaScript 是一种广泛应用于 Web 开发的编程语言,下面总结了 100 多个有用的 JavaScript 函数和基础写法。 输出语句 document.write("") 是 JavaScript 中最基本的输出语句,...

    使用XMLHTTPRequest实现自定义ajax。javascript闭包模式写法。值的学习

    在JavaScript的世界里,Ajax(Asynchronous JavaScript and XML)是一种创建动态网页的技术,它允许在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容。XMLHTTPRequest对象是实现Ajax的核心,它是...

    JavaScript创建对象的七种方式全面总结

    在JavaScript中,对象是其数据结构的基础,创建对象的方式多种多样。本文将详细介绍七种常见的创建JavaScript对象的方法,分别是:工厂模式、构造函数模式、原型模式,以及这三种模式的不同变体和优化。 1. **工厂...

    Javascript中的对象.pdf

    JavaScript中的对象创建和继承是面向对象程序设计的重要组成部分,提供了多种方式来创建对象和实现继承。 对象概述部分介绍了对象是包含零个或多个属性的集合。这些属性可以是基本类型的值,也可以是其他对象或函数...

    javascript原生ajax写法分享_.docx

    总的来说,JavaScript原生的AJAX实现涉及到XMLHttpRequest对象的创建、请求的发送和响应的处理。随着技术的发展,现在更多地使用fetch API或jQuery等库来简化这一过程,但在理解基础的AJAX工作原理时,原生实现仍然...

    《JavaScript内核系列》和《JavaScript面向对象基础》

    - **构造函数与new操作符**:构造函数用于创建新对象,new操作符在创建对象时调用构造函数并设置原型。 - **类与继承**:ES6引入的class语法糖,提供了更接近传统面向对象编程的写法,但底层仍然是基于原型实现的...

    MooCSS模块化面向对象的css写法

    《MooCSS:模块化面向对象的CSS写法详解》 在现代Web开发中,CSS已经从简单的样式语言发展为复杂、高效的样式管理系统。MooCSS(Module-Oriented Object CSS)是一种基于模块化和面向对象思想的CSS编写方式,旨在...

    javascript 面向对象程序设计博客文章

    除了构造函数,我们还可以使用对象字面量来创建对象,这是一种更简洁的方式。对象属性可以通过点号或方括号语法访问: ```javascript var obj = { name: 'Bob', sayHello: function() { console.log('Hello'); } }...

    JavaScript面向对象程序程序设计PPT与代码

    ES6引入了类的概念,虽然JavaScript的类本质上仍然是函数,但它提供了一种更符合传统面向对象语法的写法。例如: ```javascript class Person { constructor(name) { this.name = name; } sayName() { ...

Global site tag (gtag.js) - Google Analytics