国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

javascript-繼承

kohoh_ / 1774人閱讀

摘要:化偽花貓偽,花,貓借助構造函數無論是原型鏈還是原型式繼承,都有相同的問題。要解決這樣的問題,可以借助構造函數也可以叫做偽造對象或經典繼承。對于繼承來講,可以試想子對象的構造函數中調用父對象的構造函數時,講子對象的和父對象的綁定在一起。

繼承 原型式繼承

所謂原型式繼承,就是定義一個函數,該函數中創建一個臨時性的構造函數,并將作為參數傳入的對象作為這個構造函數的原型,最后返回這個構造函數的實例對象

function object(o){
    dunction F (){
    F.prototype = o
    return new F()
 }

根據原型式繼承所總結的object()函數實現繼承,如下列代碼:

var person ={
    name : "花",
    friends : ["偽","化"]
}
var result = object(person);
result.friends.push("貓");
console.log(result.freends);//偽,化,貓

這種原型式繼承要求必須具有一個對象可以作為另一個對象的基礎。

上述原型式繼承,也可以用Object的create()方法代替自定義的object()函數,從而是想規范化。

var person = {
    name : "化"
    friends : ["偽","花"]
}
var anotherperson = Object.create(person);
anotherperson.friends.push("貓");
console.log(anotherperson.friends);//偽,花,貓
借助構造函數

無論是原型鏈還是原型式繼承,都有相同的問題。要解決這樣的問題,可以借助構造函數(也可以叫做偽造對象或經典繼承)。
這種方式實現非常簡單,就是在子對象的構造函數中調用父對象的構造函數。具體可以通過調用apply()和call()方法實現。
apple()和call()都允許傳遞指定某個對象的this。對于繼承來講,可以試想子對象的構造函數中調用父對象的構造函數時,講子對象的this和父對象的this綁定在一起。

function Fun (){
    this.color = "藍"
}
function Fn(){
    Fun.call(this);
}
 var result = new Fn
result.color;//藍
組合方式繼承

組合繼承,也叫做偽經典繼承,指的是將原型鏈或原型式繼承和借助構造函數的技術組合在一起,發揮二者的長處的一種繼承方式。

使用原型鏈或原型式繼承實現對原型的屬性和方法的繼承。

通過借助構造函數實現對實例對象的屬性的集成。

function Fun (name){
    this name = name;
 }
Fun.prototype.sayname = function(){
    console.log(this.name);
}
function Fn (name,age){
    Fun.call(this.name);//繼承屬性
    this.age = age;
}
Fn.prototype = Fun.prototype;集成方法
獲取Date()對象
var d1 = new Date();// 構造函數
var d2 = Date();// 函數

console.log(d1);
console.log(d2);

var d3 = new Date;
console.log(d3);
獲取日期
var d = new Date();

console.log(d.getDate());// 17
console.log(d.getDay());// 5

console.log(d.getFullYear());// 2018
console.log(d.getYear());// 118 - 表示距離1900年的年份
// 獲取當前時間的毫秒數
console.log(d.getMilliseconds());
// 獲取毫秒數 - 距離1970-1-1 0點0分
console.log(d.getTime());
/*
    毫秒數的實際應用:
    1.將毫秒數作為標識(ID)
    2.將毫秒數作為時間戳
 */
Math類型
// 不能創建對象 - TypeError: Math is not a constructor
// var m = new Math();
// console.log(m);

console.log(Math.PI);

console.log(Math.floor(6.5));// 6

console.log(Math.max(4,8));// 8

var arr = [3,1,6,8,25];
console.log(Math.max.apply(null,arr));// 25

// 生成隨機數 - 只能生成 0 ~ 1 之間的隨機數
console.log(Math.random());
// 生成 0 ~ 100 之間的隨機數
console.log(Math.random() * 100);
// 生成 1 ~ 100 之間的隨機數
console.log(Math.random() * 99 + 1);

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/108357.html

相關文章

  • 徹底搞懂JavaScript中的繼承

    摘要:這正是我們想要的太棒了毫不意外的,這種繼承的方式被稱為構造函數繼承,在中是一種關鍵的實現的繼承方法,相信你已經很好的掌握了。 你應該知道,JavaScript是一門基于原型鏈的語言,而我們今天的主題 -- 繼承就和原型鏈這一概念息息相關。甚至可以說,所謂的原型鏈就是一條繼承鏈。有些困惑了嗎?接著看下去吧。 一、構造函數,原型屬性與實例對象 要搞清楚如何在JavaScript中實現繼承,...

    _ivan 評論0 收藏0
  • 講清楚之 javascript 對象繼承

    摘要:中的繼承并不是明確規定的,而是通過模仿實現的。繼承中的繼承又稱模擬類繼承。將函數抽離到全局對象中,函數內部直接通過作用域鏈查找函數。這種范式編程是基于作用域鏈,與前面講的繼承是基于原型鏈的本質區別是屬性查找方式的不同。 這一節梳理對象的繼承。 我們主要使用繼承來實現代碼的抽象和代碼的復用,在應用層實現功能的封裝。 javascript 的對象繼承方式真的是百花齊放,屬性繼承、原型繼承、...

    Jonathan Shieber 評論0 收藏0
  • javascript繼承 --- 多種繼承方式解析(ES5)

    摘要:繼承前言作為一門輕量級的腳本語言在和的橫空出世之后將其推向的新的高度雖然中出現的新的生成對象的類語法格式但依然為的語法糖而我們依然有必要從的原生實現入手來了解它的繼承實現方式給出了更加簡潔的固定的類聲明方式有興趣的可以查看阮一峰的入門下面給 javascript繼承 前言 javascript作為一門輕量級的腳本語言在ES6和node.js的橫空出世之后將其推向的新的高度,雖然 ES6...

    yankeys 評論0 收藏0
  • 白話解釋 Javascript 原型繼承(prototype inheritance)

    摘要:我們有了構造函數之后,第二步開始使用它構造一個函數。來個例子這種方式很簡單也很直接,你在構造函數的原型上定義方法,那么用該構造函數實例化出來的對象都可以通過原型繼承鏈訪問到定義在構造函數原型上的方法。 來源: 個人博客 白話解釋 Javascript 原型繼承(prototype inheritance) 什么是繼承? 學過面向對象的同學們是否還記得,老師整天掛在嘴邊的面向對象三大特...

    kid143 評論0 收藏0
  • javascript繼承你了解多少?

    摘要:和構造函數前面提到,是個內置隱藏屬性,雖然在可以通過訪問,但是其設計本意是不可被讀取和修改的,那么我們如何利用原型鏈來建立繼承關系提供了關鍵字。到這兒,思路就清晰了,怎么讓對象和對象的相連實現繼承只需把的構造函數的連接到就行了。 什么是繼承? 大多數人使用繼承不外乎是為了獲得這兩點好處,代碼的抽象和代碼的復用。代碼的抽象就不用說了,交通工具和汽車這類的例子數不勝數,在傳統的OO語言中(...

    baishancloud 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<