二〇一七年首先周,JavaScript 使用prototype成立对象

JavaScript 使用简便语法创立对象

JavaScript 使用prototype创建对象。

创设二个指标
Java代码

率先种:JSON情势/对象间接量
格式:
var 对象名 = {
变量1: 变量1的值,
变量1: 变量1的值,
……,
函数1: function() {
函数体
},
函数2: function() {
函数体
}//Note:最终的逗号要删减为了和IE包容。
};
说明:
(1) 大括号内直接填写变量或然函数;
(2) 对象的剧情与值以冒号分隔,成对现身;
(3) 满含的变量大概函数之间以逗号分隔;
(4) 函数要求写在function(){}的大括号之内。
例子:
var 对象名 = {
name: “Vicky”,
age: 26,
eat: function() {
alert(‘I wanna eat meat’);
},
sleep: function() {
alert(‘I wanna sleep’);
}
};
讲授:类似的办法也叫做佚名类
无名氏类举个例子:
{
index: ‘//’,
reg: new RegExp(‘^//.*$’),
css: “comment”
}
地方的议程成立了类,只是没赋给一个变量而已。
第二种:function方式
格式:
function data() {
this.变量1=变量1的值;
this.变量2=变量2的值;
……;
this.函数1= function() {
函数体
};
this.函数2= function() {
函数体
};
}
说明:
(1) 其内的变量恐怕函数前必得写上this关键字;
(2) 对象的剧情与值以等号分隔,成对出现;
(3) 富含的变量可能函数之间以分行分隔。
(4) 函数须要写在function(){}的大括号之内。
例子:
function data() {
this.name=“Vicky””;
this.age=26;
this.eat=function() {
alert(‘I wanna eat meat’);
};
this.sleep=function() {
alert(‘I wanna sleep’);
};
}
其两种:原型格局
格式:
var 对象名 = {};
对象名.prototype.变量1=变量1的值;
对象名.prototype.变量2=变量2的值;
……;
对象名.prototype.函数1= function() {
函数体
};
对象名.prototype.函数2= function() {
函数体
};
……;
说明:
(1) 早先对象体内得以不定义任马建波西;
(2) 在要定义的变量前加“对象名.prototype.”的格式;
(3) 对象的从头到尾的经过与值以等号分隔,成对出现;
(4) 包涵的变量也许函数之间以分局分隔,也能够节约分号。
(5) 函数供给写在function(){}的大括号之内。
例子:
var data = {};
data.prototype. name =”Vicky”;
data.prototype. age =20;
data.prototype. eat = function() {
alert(‘I wanna eat meat’);
};
data.prototype. sleep= function() {
alert(‘I wanna sleep’);
};
第四种:create方式
该形式选用了Prototype JavaScript组件库。
格式:
var 对象名 = Class.create();
Object.extend(对象名.prototype, {
变量1: 变量1的值,
变量1: 变量1的值,
……,
函数1: function() {
函数体
},
函数2: function() {
函数体
},
……
});
说明:
(1) 对象的创制使用了Prototype库中的Class.create()函数;
(2) 对象的剧情使用Prototype库中的Object.extend()函数来扩张;
(3) 被增加的目的在扩散Object.extend函数时断定要带上prototype,
(4) 扩充内容被大括号富含,其内与JSON方式的定义格式完全一样。
例子:
var data = Class.create();
Object.extend(dta.prototype, {
name: “Vicky”,
age: 20,
eat: function() {
alert(‘I wanna eat meat’);
},
sleep: function() {
alert(‘I wanna sleep’);
}
});
实质上,JS对象的概念还会有其它的章程,你也得以用地点4种进行重组定义,那显出了JS作为动态语言的自由性。
JS对象的创设正规方法如下:
var d1 = new Data();
JS对象变量的引用格局有三种:
(1) 点号形式引用,如,data.name。
(2) 数组格局援引,如,data[‘name’]。

[Ctrl+A 全选
注:如需引进外界Js需刷新工夫施行]

JavaScript创建Dog

    function Dog(name,sex,age){
        this.name = name;
        this.sex  = sex;
        this.age  = age;
        this.run  = function (){
        console.log(this.name + ",run");
        }
    }
    //sex : 1 男,2 女
    var dog_1 = new Dog("tim",1,5);
    var dog_2 = new Dog("vik",2,5);

    dog_1.run(); // tim,run
    dog_2.run(); // vik,run

    console.log(dog_1.run == dog_2.run); //输入false;

以上代码是由此Dog类创建了dog_1dog_2多少个指标。可以观望dog_1dog_2run
方法,bark
方法
是落成内容同样的,不过用的两样的仓库储存空间。那就能够促成内部存款和储蓄器的荒凉。

复制代码 代码如下:

您可能感兴趣的文章:

  • JavaScript
    两种成立对象的秘籍
  • JS
    成立对象(常见的两种方法)
  • js创设对象的三种常用方式小结(推荐)
  • js面向对象之广大成立对象的二种艺术(工厂格局、构造函数方式、原型情势)
  • js创设对象的法门汇总
  • javascript的函数、创制对象、封装、属性和章程、承袭
  • JavaScript创制对象的写法
  • JavaScript中使用Object.create()创制对象介绍
  • JavaScript
    创造对象和结构类完结代码
  • 跟自家读书javascript成立对象(类)的8种艺术
  • JavaScript创制对象方法实例小结

你或然感兴趣的稿子:

  • javascript中创立对象的两种办法总括
  • JavaScript创造对象的写法
  • nullJavascript中创制对象的三种办法实例
  • 从面试题学习Javascript
    面向对象(创立对象)
  • JavaScript中动用构造器创造对象没有需求new的事态申明
  • javascript的函数、创造对象、封装、属性和议程、承接
  • javascript中创造对象的两种常用方法
  • JavaScript
    三种创设对象的不二秘诀
  • JavaScript
    创造对象和结构类达成代码
  • JavaScript 创造对象
  • JavaScript中创立类/对象的三种办法计算

采纳原型(prototype)

    function Dog(name,sex,age){
        this.name = name;
        this.sex  = sex;
        this.age  = age;
    }

    Dog.prototype.run = function(){
        console.log(this.name + ",run");

    }
    //sex : 1 男,2 女
    var dog_1 = new Dog("tim",1,5);
    var dog_2 = new Dog("vik",2,5);

    dog_1.run(); // tim,run
    dog_2.run(); // vik,run

    console.log(dog_1.run == dog_2.run); //输入true;

应用原型链改变后,就化解重复创设的主题素材。

注意点:

`var dog_1 = new Dog("tim",1,5);` ,dog_1的原型链`__proto__`的`constructor`会指向Dog类;

图片 1

jpg

举例利用原型链对象赋值如下加多constructor: Dog

    function Dog(name,sex,age){
        this.name = name;
        this.sex  = sex;
        this.age  = age;
    }


    Dog.prototype = {
        constructor: Dog,
        run : function(){
                console.log(this.name + ",run");
        }
    }
    //sex : 1 男,2 女
    var dog_1 = new Dog("tim",1,5);
    var dog_2 = new Dog("vik",2,5);

<script type=”text/javaScript”>
var newObject=new Object();
//创设二个指标
newObject.firstName=”frank”;
//扩张叁个firstName属性
newObject.sayName=function(){
alert(this.firstName);
}
//添加三个sayName方法
//调用sayName方法
// newObject.sayName();
// newObject[“sayName”]();
var FirstName=newObject[“firstName”];
var whatFunction;
// if(whatVolume==1){
// whatFunction=”sayName”;
// }else if(whatVolume==2){
// whatFunction=”sayLoudly”
// }
// newObject[whatFunction]();
function sayLoudly(){
alert(this.firstName.toUpperCase());
}
newObject.sayLoudly=sayLoudly;
//另一种办法丰盛方法
newObject[“sayLoudly”]();
</script>

接纳json(javaScript Object Notation)创建对象和地方同样的功能。
Java代码

复制代码 代码如下:

function sayLoudly(){
alert(this.firstName.toUpperCase());
}
var newObject={
firstName:”frank”,
sayName:function(){alert(this.firstName);},
sayLoudly:sayLoudly
};
//也能够那样
var newObject={
firstName:”frank”,
sayName:function(){alert(this.firstName);},
sayLoudly:sayLoudly,
lastName:{
lastName:”ziggy”,
sayName:function(){alert(this.lastName);}
}
};
newObject.lastName.sayName();

这样也ok
Java代码

复制代码 代码如下:

function sayLoudly(){
alert(this.name.toUpperCase());
}
function sayName(){
alert(this.name);
}
var newObject={
name:”frank”,
sayName:sayName,
sayLoudly:sayLoudly,
lastName:{
name:”ziggy”,
sayName:sayName
}
};
newObject.lastName.sayName();

JavaScript 中的类,还恐怕有构造方法。。。
Java代码

复制代码 代码如下:

function newClass(){
alert(“constructor”);
this.firstName=”frank”;
this.sayName=function(){alert(this.firstName);}
// return this;
}
//var nc=newClass();
var nc=new newClass();
//nc.firstName=”ziggy”; is ok
nc.sayName();

仍可以够如此来构造类
Java代码

复制代码 代码如下:

function newClass(){
this.firstName=”frank”;
}
newClass.prototype.sayName=function(){
alert(this.firstName);
}
var nc=new newClass();
nc.firstName=”ziggy”;
nc.sayName();
var nc2=new newClass();
nc2.sayName();

貌似用prototypes来增多方法,那样无论有些许个实例,在内部存款和储蓄器中唯有贰个sayName方法。

您可能感兴趣的文章:

  • JavaScript
    二种创设对象的主意
  • JS
    创建对象(常见的三种艺术)
  • JavaScript 创设对象
  • js成立对象的两种常用方式小结(推荐)
  • js面向对象之常见制造对象的二种艺术(工厂方式、构造函数形式、原型方式)
  • js创立对象的法门汇总
  • javascript的函数、创设对象、封装、属性和形式、承袭
  • JavaScript创造对象的写法
  • JavaScript中运用Object.create()创造对象介绍
  • 跟自己上学javascript创立对象(类)的8种情势
  • JavaScript创制对象方法实例小结

相关文章